.mx-0{margin-inline:0rem}.mx-1{margin-inline:.25rem}.mx-2{margin-inline:.5rem}.mx-3{margin-inline:.75rem}.mx-4{margin-inline:1rem}.mx-5{margin-inline:1.25rem}.mx-6{margin-inline:1.5rem}.ms-0{margin-inline-start:0rem}.ms-1{margin-inline-start:.25rem}.ms-2{margin-inline-start:.5rem}.ms-3{margin-inline-start:.75rem}.ms-4{margin-inline-start:1rem}.ms-5{margin-inline-start:1.25rem}.ms-6{margin-inline-start:1.5rem}.me-0{margin-inline-end:0rem}.me-1{margin-inline-end:.25rem}.me-2{margin-inline-end:.5rem}.me-3{margin-inline-end:.75rem}.me-4{margin-inline-end:1rem}.me-5{margin-inline-end:1.25rem}.me-6{margin-inline-end:1.5rem}.my-0{margin-block:0rem}.my-1{margin-block:.25rem}.my-2{margin-block:.5rem}.my-3{margin-block:.75rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.my-6{margin-block:1.5rem}.mt-0{margin-block-start:0rem}.mt-1{margin-block-start:.25rem}.mt-2{margin-block-start:.5rem}.mt-3{margin-block-start:.75rem}.mt-4{margin-block-start:1rem}.mt-5{margin-block-start:1.25rem}.mt-6{margin-block-start:1.5rem}.mb-0{margin-block-end:0rem}.mb-1{margin-block-end:.25rem}.mb-2{margin-block-end:.5rem}.mb-3{margin-block-end:.75rem}.mb-4{margin-block-end:1rem}.mb-5{margin-block-end:1.25rem}.mb-6{margin-block-end:1.5rem}.px-0{padding-inline:0rem}.px-1{padding-inline:.25rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-5{padding-inline:1.25rem}.px-6{padding-inline:1.5rem}.ps-0{padding-inline-start:0rem}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-6{padding-inline-start:1.5rem}.pe-0{padding-inline-end:0rem}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-5{padding-inline-end:1.25rem}.pe-6{padding-inline-end:1.5rem}.py-0{padding-block:0rem}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-4{padding-block:1rem}.py-5{padding-block:1.25rem}.py-6{padding-block:1.5rem}.pt-0{padding-block-start:0rem}.pt-1{padding-block-start:.25rem}.pt-2{padding-block-start:.5rem}.pt-3{padding-block-start:.75rem}.pt-4{padding-block-start:1rem}.pt-5{padding-block-start:1.25rem}.pt-6{padding-block-start:1.5rem}.pb-0{padding-block-end:0rem}.pb-1{padding-block-end:.25rem}.pb-2{padding-block-end:.5rem}.pb-3{padding-block-end:.75rem}.pb-4{padding-block-end:1rem}.pb-5{padding-block-end:1.25rem}.pb-6{padding-block-end:1.5rem}.fs-12{font-size:.75rem}.fs-13{font-size:.8125rem}.fs-14{font-size:.875rem}.fs-15{font-size:.9375rem}.fs-16{font-size:1rem}.fs-17{font-size:1.0625rem}.fs-18{font-size:1.125rem}.fs-19{font-size:1.1875rem}.fs-20{font-size:1.25rem}.fw-1{font-weight:100}.fw-2{font-weight:200}.fw-3{font-weight:300}.fw-4{font-weight:400}.fw-5{font-weight:500}.fw-6{font-weight:600}.fw-7{font-weight:700}.fw-8{font-weight:800}:root{--fs-text: .875rem;--fs-title: 1rem;--fs-highlight: 1rem;--fs-project-title: 1.75rem;--fs-project-description: .85rem;--fs-tagline: 2.5rem;--fs-tagline: 2rem;--fs-tooltip: .875rem;--fs-splash: 1.125rem;--fw-main: 400;--fw-title: 300;--section-title-min-width: 15ch;--cross-size: 1rem;--border-width: 2px;--border-radius: 0;--border-radius-section-main-desktop: 2rem;--border-radius-section-title-desktop: 4rem;--border-radius-section-main-mobile: 2rem;--border-radius-section-title-mobile: 4rem;--button-border-radius: .5rem;--tooltip-border-radius: .25rem;--max-section-width: 1200px;--animated-button-border-width: 2px}@media (width >= 1024px){:root{--fs-text: 1.0625rem;--fs-title: 1.25rem;--fs-title: 1.625rem;--fs-title: 1.375rem;--fs-highlight: 1.125rem;--fs-project-title: 2rem;--fs-project-description: 1.0625rem;--fs-tagline: 3rem}}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:200;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-200.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:300;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-300.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:400;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:500;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:600;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:700;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:800;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-800.woff2) format("woff2")}@font-face{font-display:swap;font-family:Reddit Mono;font-style:normal;font-weight:900;src:url(/fonts/reddit-mono/reddit-mono-v3-latin-ext-900.woff2) format("woff2")}.font-reddit-mono{font-family:Reddit Mono,monospace}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:200;src:url(/fonts/oxanium/oxanium-v20-latin-ext-200.woff2) format("woff2")}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:300;src:url(/fonts/oxanium/oxanium-v20-latin-ext-300.woff2) format("woff2")}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:400;src:url(/fonts/oxanium/oxanium-v20-latin-ext-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:500;src:url(/fonts/oxanium/oxanium-v20-latin-ext-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:600;src:url(/fonts/oxanium/oxanium-v20-latin-ext-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:700;src:url(/fonts/oxanium/oxanium-v20-latin-ext-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Oxanium;font-style:normal;font-weight:800;src:url(/fonts/oxanium/oxanium-v20-latin-ext-800.woff2) format("woff2")}.font-oxanium{font-family:Oxanium,sans-serif}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:100;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-100.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:200;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-200.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:300;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-300.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:400;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:500;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-500.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:600;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:700;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:800;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-800.woff2) format("woff2")}@font-face{font-display:swap;font-family:Bitcount Prop Single;font-style:normal;font-weight:900;src:url(/fonts/bitcount-prop-single/bitcount-prop-single-v3-latin-ext-900.woff2) format("woff2")}.font-bitcount-prop-single{font-family:Bitcount Prop Single,sans-serif}:root{--ff-mono: "Reddit Mono", monospace;--ff-body: "Reddit Mono", monospace;--ff-highlight: var(--ff-body);--ff-splash: var(--ff-body);--ff-tagline: "Bitcount Prop Single", sans-serif;--ff-section-title: "Oxanium", sans-serif;--ff-exp-item: var(--ff-mono);--ff-exp-item: var(--ff-body);--ff-scroll-item: var(--ff-body);--ff-project-card-title: "Oxanium", sans-serif;--ff-project-technologies: var(--ff-mono);--ff-project-technologies: var(--ff-body);--ff-tooltip: var(--ff-body);--ff-tooltip: "Oxanium", sans-serif;--ff-tooltip: var(--ff-mono);--ff-language-switcher: var(--ff-mono);--ff-scroll-percentage: var(--ff-mono)}.theme-switcher-icon{aspect-ratio:1;width:1rem;color:var(--c-fg)}.section-icon{aspect-ratio:1;width:2rem;color:var(--c-accent)}@media (width <= 768px){.section-icon{width:1.5rem}}.menu-icon{aspect-ratio:1;width:1.5rem;color:var(--c-accent)}.menu-icon-large{aspect-ratio:1;width:2rem;color:var(--c-accent)}.contact-icon{aspect-ratio:1;width:1.5rem}@media (width <= 768px){.contact-icon{width:1.25rem}}.eye-icon{aspect-ratio:1;width:1.25rem}@media (width <= 768px){.eye-icon{width:1rem}}.earth-tooltip-icon{aspect-ratio:1;width:2rem}@media (width <= 768px){.earth-tooltip-icon{width:1.5rem}}.project-card-icon{aspect-ratio:1;width:1.25rem}@media (width <= 768px){.project-card-icon{width:1rem}}.about-scroller-icon{aspect-ratio:1;width:1rem}.experience-switch-scroll-icon{aspect-ratio:1;width:1rem;margin-right:.5em;color:var(--c-accent)}.footer-icon{aspect-ratio:1;width:1rem;color:var(--c-emphasis)}.footer-icon.heart{color:var(--c-danger, darkred)}.section-mobile{--c-section: var(--c-accent);display:grid;grid-template-columns:var(--cross-size) 1fr var(--cross-size);grid-template-rows:var(--cross-size) 1fr var(--cross-size);padding:0 4vw 2rem 4vw;width:100%}.section-mobile .section-top{grid-column:1/-1;grid-row:1/span 1;border-bottom:var(--border-width) solid var(--c-section)}.section-mobile .section-bottom{grid-column:1/-1;grid-row:-2/span 1;border-top:var(--border-width) solid var(--c-section)}.section-mobile .section-left{grid-column:1/span 1;grid-row:1/-1;border-right:var(--border-width) solid var(--c-section)}.section-mobile .section-right{grid-column:-2/span 1;grid-row:1/-1;border-left:var(--border-width) solid var(--c-section)}.section-mobile .section-main{--grid-color: oklch(from var(--c-section) l c h / .2);--grid-bg-color: oklch(from var(--c-bg) l c h / .8);background:linear-gradient(transparent,var(--grid-bg-color) 70%),repeating-linear-gradient(to bottom,var(--grid-color),var(--grid-color) 1px,transparent 1px,transparent 2rem),repeating-linear-gradient(to right,var(--grid-color),var(--grid-color) 1px,transparent 1px,transparent 2rem) var(--grid-bg-color);transition:background-color .5s;box-shadow:0 0 1rem oklch(from var(--c-section) l c h/.6);--padding-x: 1.25rem;grid-column:2/-2;grid-row:2/-2;align-content:center;font-size:var(--fs-text);padding-inline:var(--padding-x);padding-block:1.5rem;height:auto;width:100%;overflow:clip}@media (width >= 768px){.section-mobile .section-main{--padding-x: 1.5rem}}@media (width >= 992px){.section-mobile .section-main{--padding-x: 1.75rem}}.section-mobile .section-main p:first-child{margin-block-start:0}.section-mobile .section-main p:last-child{margin-block-end:0}.section-mobile .section-title{background-color:hsl(from var(--c-bg) h s l/.9);transition:background-color .5s;box-shadow:0 0 1rem oklch(from var(--c-section) l c h/.6);border:var(--border-width) solid var(--c-section);border-radius:var(--border-radius-section-title-mobile, 1rem);min-width:var(--section-title-min-width);grid-column:2/span 1;grid-row:1/span 1;justify-self:center;align-self:center;color:var(--c-section-title);font-family:var(--ff-section-title);font-size:var(--fs-title);line-height:1;text-align:center;text-transform:lowercase;padding-inline:1rem;padding-block:.5rem}.section-mobile .section-title:first-letter{text-transform:capitalize}.section-desktop-with-title{--c-section: var(--c-accent);display:grid;grid-template-columns:var(--cross-size) 1fr var(--cross-size);grid-template-rows:var(--cross-size) 1fr var(--cross-size);width:100%}.section-desktop-with-title .section-top{grid-column:1/-1;grid-row:1/span 1;border-bottom:var(--border-width) solid var(--c-section)}.section-desktop-with-title .section-bottom{grid-column:1/-1;grid-row:-2/span 1;border-top:var(--border-width) solid var(--c-section)}.section-desktop-with-title .section-left{grid-column:1/span 1;grid-row:1/-1;border-right:var(--border-width) solid var(--c-section)}.section-desktop-with-title .section-right{grid-column:-2/span 1;grid-row:1/-1;border-left:var(--border-width) solid var(--c-section)}.section-desktop-with-title .section-main{--grid-color: oklch(from var(--c-section) l c h / .2);--grid-bg-color: oklch(from var(--c-bg) l c h / .9);background:linear-gradient(transparent,var(--grid-bg-color) 70%),repeating-linear-gradient(to bottom,var(--grid-color),var(--grid-color) 1px,transparent 1px,transparent 2rem),repeating-linear-gradient(to right,var(--grid-color),var(--grid-color) 1px,transparent 1px,transparent 2rem) var(--grid-bg-color);box-shadow:0 0 1rem oklch(from var(--c-section) l c h/.6);grid-column:2/-2;grid-row:2/-2;align-content:center;height:100%;width:100%;font-size:var(--fs-text);font-weight:var(--fw-main);padding:2rem}.section-desktop-with-title .section-main p:first-child{margin-block-start:0}.section-desktop-with-title .section-main p:last-child{margin-bottom:0}.section-desktop-with-title .section-title{background-color:var(--c-bg);box-shadow:0 0 1rem oklch(from var(--c-section) l c h/.6);border:var(--border-width) solid var(--c-section);border-radius:var(--border-radius-section-title-desktop, 1rem);min-width:var(--section-title-min-width);grid-column:2/span 1;grid-row:1/span 1;justify-self:center;align-self:center;color:var(--c-section-title);font-family:var(--ff-section-title);font-size:var(--fs-title);font-weight:var(--fw-title);text-align:center;padding-inline:.5em;padding-block:.25em;z-index:1}.section-desktop{--c-section: var(--c-accent);display:grid;grid-template-columns:var(--cross-size) 1fr var(--cross-size);grid-template-rows:var(--cross-size) 1fr var(--cross-size);width:100%}.section-desktop .section-top{grid-column:1/-1;grid-row:1/span 1;border-bottom:var(--border-width) solid var(--c-section)}.section-desktop .section-bottom{grid-column:1/-1;grid-row:-2/span 1;border-top:var(--border-width) solid var(--c-section)}.section-desktop .section-left{grid-column:1/span 1;grid-row:1/-1;border-right:var(--border-width) solid var(--c-section)}.section-desktop .section-right{grid-column:-2/span 1;grid-row:1/-1;border-left:var(--border-width) solid var(--c-section)}.section-desktop .section-main{--grid-color: oklch(from var(--c-section) l c h / .2);--grid-bg-color: oklch(from var(--c-bg) l c h / .9);background:linear-gradient(transparent,var(--grid-bg-color) 70%),repeating-linear-gradient(to bottom,var(--grid-color),var(--grid-color) 1px,transparent 1px,transparent 2rem),repeating-linear-gradient(to right,var(--grid-color),var(--grid-color) 1px,transparent 1px,transparent 2rem) var(--grid-bg-color);box-shadow:0 0 1rem oklch(from var(--c-section) l c h/.6);grid-column:2/3;grid-row:2/3;align-content:center;height:100%;width:100%;font-size:var(--fs-text);font-weight:var(--fw-main);padding:2rem}.section-desktop .section-main p:first-child{margin-block-start:0}.section-desktop .section-main p:last-child{margin-block-end:0}@property --animated-button-angle{syntax: "<angle>"; inherits: true; initial-value: -.125turn;}.animated-button-border{isolation:isolate;position:relative;border:var(--animated-button-border-width) solid transparent}.animated-button-border:before{content:" ";position:absolute;inset:calc(var(--animated-button-border-width) * -1);border-radius:inherit;border:inherit;background-image:conic-gradient(from var(--animated-button-angle),var(--c-button-border-1) 10%,transparent 10%,transparent 15%,var(--c-button-border-2) 15%,var(--c-button-border-2) 35%,transparent 35%,transparent 40%,var(--c-button-border-3) 40%,var(--c-button-border-3) 60%,transparent 60%,transparent 65%,var(--c-button-border-4) 65%,var(--c-button-border-4) 85%,transparent 85%,transparent 90%,var(--c-button-border-1) 90%);transition:--animated-button-angle .8s cubic-bezier(.4,1.5,.5,1);background-origin:border-box;mask:linear-gradient(black,black),linear-gradient(black,black);mask-image:linear-gradient(#000,#000),linear-gradient(#000,#000);mask-clip:content-box,border-box;mask-composite:exclude;z-index:-1}.animated-button-border:hover:before{--animated-button-angle: .375turn}:root{--c-bg: oklch(12% .04 240);--c-bg-secondary: oklch(30% .02 240);--c-fg: oklch(88.5% 0 0);--c-emphasis: oklch(100% 0 0);--c-border: oklch(32.1% 0 0);--c-danger: oklch(35% .258 29.2);--c-accent: var(--c-emphasis);--c-modal: oklch(50% .118 251);--c-section: var(--c-fg);--c-section-title: var(--c-emphasis);--c-tooltip-bg: oklch(from var(--c-bg) calc(l*1.5) c h / .9);--c-tooltip-fg: var(--c-fg);--c-tooltip-border: oklch(from var(--c-fg) calc(l*.8) c h / .9);--c-earth-tooltip-icon-border: oklch(66% .18 40);--c-scroll-percentage: oklch(70% .18 40);--c-button-border-1: oklch(70% .25 60);--c-button-border-2: oklch(60% .27 50);--c-button-border-3: oklch(70% .25 60);--c-button-border-4: oklch(60% .27 50)}.c-accent{color:var(--c-accent)}.c-body{color:var(--c-fg)}.c-bg{color:var(--c-bg)}*,*:before,*:after{box-sizing:border-box}body{font-family:var(--ff-body);color:var(--c-fg);background-color:var(--c-bg);margin:0}hr{color:var(--c-section);opacity:1;border:0;border-block-start:1px solid hsl(from var(--c-section) h s calc(l*.8) /1);margin-block:.5rem;margin-inline:0}footer{width:100%;max-width:var(--max-section-width);padding:0 4vw}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:500!important}.text-bold{font-weight:700!important}.text-justify{text-align:justify;text-justify:inter-word}.text-small-caps{font-variant-caps:all-small-caps}.text-bigger{font-size:1.1em}.text-smaller{font-size:.8em}.isolate{isolation:isolate}.popover-header:first-letter{text-transform:capitalize}.text-highlight{color:var(--c-emphasis);font-family:var(--ff-highlight);font-size:var(--fs-highlight);font-weight:500;transition:color .2s ease-in-out}.text-highlight:hover{color:var(--c-fg)}.main-container{display:grid;min-height:100vh;place-items:center}img,svg{vertical-align:middle}.desktop-experience-modal-backdrop{background-color:hsl(from var(--c-bg) h s l/.8)}.desktop-experience-modal-panel{position:relative;margin:2rem;padding:2rem;background-color:var(--c-bg);border:3px solid var(--c-bg-secondary);border-radius:.5rem;box-shadow:0 4px 8px hsl(from var(--c-bg) h s l/.5);max-width:90vw;max-height:90vh;width:fit-content;height:fit-content;overflow:clip;overflow-clip-margin:2rem}
