@import url(https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap);:root{--color-bg:#0b0c0e;--color-text:#e9e9e7;--color-muted:#9a9a97;--color-faint:#67676a;--color-border:rgba(255,255,255,0.09);--color-accent:#c9a869;--content-width:640px}*{box-sizing:border-box}body{overflow-x:hidden;margin:0;padding:0;background-color:var(--color-bg);color:var(--color-text);font-family:Rubik,sans-serif;font-weight:400;font-size:17px;line-height:1.6}a{color:inherit}.d-wrapper{white-space:pre-wrap}.edges{max-width:var(--content-width);margin:0 auto;padding:0 24px 80px}main{display:block}.section{margin-top:64px;padding-top:40px;border-top:1px solid var(--color-border)}.eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent);margin:0 0 12px}.section-intro{font-size:16px;color:var(--color-muted);margin:0 0 28px;max-width:60ch}.group-label{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-faint);margin:32px 0 16px}.group-label:first-of-type{margin-top:0}.preloader{padding-left:1rem;padding-right:1rem;max-width:640px;margin-left:auto;margin-right:auto}.preload{justify-content:center;align-items:center;width:100%;display:flex;position:absolute;background-color:var(--color-bg);height:100%}.plcontent{font-size:1.75rem;font-weight:500;color:var(--color-text)}.plcon,.plcontent{text-align:left;margin-top:1rem;margin-bottom:.5rem;line-height:1}.plcon{font-size:1.15rem;color:var(--color-muted)}.nav_container{width:100%;padding-top:32px}nav{max-width:var(--content-width);margin:0 auto;padding:0 24px}.navlist{display:flex;justify-content:space-between;align-items:center;list-style-type:none;margin:0;padding:0}.navlogo a{font-size:18px;font-weight:600;text-decoration:none;letter-spacing:-.01em}.navitem{display:flex;align-items:center}.profile{margin-top:56px}.profile-top{display:flex;align-items:center;gap:20px}.profile .imageWrapper{flex-shrink:0;width:72px;height:72px}#pfp{border-radius:50%;object-fit:cover}#intro{color:var(--color-text);font-size:36px;font-weight:700;letter-spacing:-.02em;margin:0}#desc{font-size:17px;font-weight:400;color:var(--color-muted);margin:6px 0 0}.socials{margin-top:24px;font-size:18px;display:flex;gap:18px}.socials .icons{color:var(--color-muted);transition:color .2s ease,transform .2s ease}.infotext{font-size:16px;color:var(--color-muted);margin:0 0 16px;max-width:62ch}.infotext:last-child{margin-bottom:0}.timeline{list-style:none;margin:0;padding:0}.exp{padding:20px 0;border-top:1px solid var(--color-border)}.exp:first-child{border-top:none;padding-top:0}.exp h3{font-size:17px;font-weight:600;color:var(--color-text);margin:0 0 10px}.exp-bullets{list-style:none;margin:0;padding:0}.exp-bullets li{font-size:15.5px;color:var(--color-muted);margin-bottom:6px;padding-left:1.1em;text-indent:-1.1em}.exp-bullets li:last-child{margin-bottom:0}.education-list{list-style:none;margin:0;padding:0}.education-item{padding:18px 0;border-top:1px solid var(--color-border)}.education-item:first-child{border-top:none;padding-top:0}.education-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.education-head h3{font-size:16px;font-weight:600;margin:0;color:var(--color-text)}.education-date{font-size:14px;color:var(--color-faint);white-space:nowrap}.education-item p{font-size:15px;color:var(--color-muted);margin:6px 0 0}.education-grade{font-size:14px;color:var(--color-faint);margin-top:2px}.skills-list{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0}.skill-tag{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:500;color:var(--color-text);border:1px solid var(--color-border);border-radius:6px;padding:6px 12px}.skill-tag img{border-radius:3px;object-fit:contain}.project-list{list-style:none;margin:0 0 8px;padding:0}.project-item{padding:20px 0;border-top:1px solid var(--color-border)}.project-item:first-child{border-top:none;padding-top:0}.project-thumb{border-radius:8px;overflow:hidden;border:1px solid var(--color-border);margin-bottom:14px;aspect-ratio:16/9;background:#14161a}.project-thumb img{width:100%;height:100%;object-fit:contain;display:block}.project-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.project-head h3{font-size:17px;font-weight:600;margin:0;color:var(--color-text)}.project-links{display:flex;gap:14px;font-size:14px;white-space:nowrap}.project-links a{color:var(--color-accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease}.project-links a:hover{border-bottom-color:var(--color-accent)}.project-subtitle{margin:6px 0 0}.project-details,.project-subtitle{font-size:15px;color:var(--color-muted)}.project-details{margin:10px 0 0}.tech-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0}.tech-list li{font-size:13px;color:var(--color-faint);border:1px solid var(--color-border);border-radius:4px;padding:3px 8px}.achievements-list{list-style:none;margin:0;padding:0}.achievement{padding:18px 0;border-top:1px solid var(--color-border)}.achievement:first-child{border-top:none;padding-top:0}.achievement h3{font-size:16px;font-weight:600;margin:0 0 6px;color:var(--color-text)}.achievement p{font-size:15px;color:var(--color-muted);margin:0}footer{text-align:center;margin-top:64px;padding-top:24px;border-top:1px solid var(--color-border)}footer p{font-size:14px;color:var(--color-faint)}.scroll-to-top{position:fixed;bottom:20px;right:20px;opacity:0;transition:opacity .3s ease-in-out;z-index:999999}.scroll-to-top.show{opacity:1}.scroll-to-top__button{display:inline-flex;align-items:center;justify-content:center;background-color:#14161a;border:1px solid var(--color-border);color:var(--color-text);padding:10px;border-radius:50%;cursor:pointer;transition:border-color .2s ease}.scroll-to-top__button:hover{border-color:var(--color-accent)}.language-switcher{position:relative;display:inline-flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--color-border);border-radius:999px;background:#121316}.language-option{position:relative;border:none;border-radius:999px;padding:7px 13px;font-size:13.5px;line-height:1;font-weight:600;letter-spacing:.02em;color:var(--color-muted);background:transparent;cursor:pointer;transition:color .22s ease}.language-option:hover{color:var(--color-text)}.language-option.active{color:var(--color-bg)}.language-pill{position:absolute;inset:0;border-radius:999px;background:var(--color-accent);z-index:0}.language-label{position:relative;z-index:1}.language-option:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-accent)}@media (hover:hover){.socials .icons:hover{color:var(--color-accent);transform:translateY(-1px)}}@media only screen and (max-width:600px){.edges,nav{padding-left:20px;padding-right:20px}#intro{font-size:28px}.profile-top{gap:16px}.profile .imageWrapper{width:60px;height:60px}.project-head{flex-direction:column;align-items:flex-start}}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular:normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular:normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-whiteboard-semibold:normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light:normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid:normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid:normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid:normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin:normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular:normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular:normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular:normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular:normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold:normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold:normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold:normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em;width:var(--fa-width,1.25em)}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285714em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa .fa-pull-start,.svg-inline--fa.fa-pull-left{float:inline-start;-webkit-margin-end:var(--fa-pull-margin,.3em);margin-inline-end:var(--fa-pull-margin,.3em)}.svg-inline--fa .fa-pull-end,.svg-inline--fa.fa-pull-right{float:inline-end;-webkit-margin-start:var(--fa-pull-margin,.3em);margin-inline-start:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);inset-inline-start:calc(-1 * var(--fa-li-width, 2em));inset-block-start:.25em}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:var(--fa-width,1.25em)}.fa-layers .svg-inline--fa{inset:0;margin:auto;position:absolute;transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:calc(10 / 16 * 1em);line-height:calc(1 / 10 * 1em);vertical-align:calc((6 / 10 - .375) * 1em)}.fa-xs{font-size:calc(12 / 16 * 1em);line-height:calc(1 / 12 * 1em);vertical-align:calc((6 / 12 - .375) * 1em)}.fa-sm{font-size:calc(14 / 16 * 1em);line-height:calc(1 / 14 * 1em);vertical-align:calc((6 / 14 - .375) * 1em)}.fa-lg{font-size:calc(20 / 16 * 1em);line-height:calc(1 / 20 * 1em);vertical-align:calc((6 / 20 - .375) * 1em)}.fa-xl{font-size:calc(24 / 16 * 1em);line-height:calc(1 / 24 * 1em);vertical-align:calc((6 / 24 - .375) * 1em)}.fa-2xl{font-size:calc(32 / 16 * 1em);line-height:calc(1 / 32 * 1em);vertical-align:calc((6 / 32 - .375) * 1em)}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{list-style-type:none;-webkit-margin-start:var(--fa-li-margin,2.5em);margin-inline-start:var(--fa-li-margin,2.5em);-webkit-padding-start:0;padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start:calc(-1 * var(--fa-li-width, 2em));position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.0625em);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;-webkit-margin-end:var(--fa-pull-margin,.3em);margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-end,.fa-pull-right{float:inline-end;-webkit-margin-start:var(--fa-pull-margin,.3em);margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}24%,8%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:black}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse,#fff)}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.svg-inline--fa.fa-stack-1x{--fa-width:1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width:2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{inset:0;margin:auto;position:absolute;z-index:var(--fa-stack-z-index,auto)}