@import "https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,300;1,400&display=swap";@import "https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,300;1,400&display=swap";@import "https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&family=Roboto+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,300;1,400&display=swap";@import "https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Nunito:ital,wght@0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&family=Roboto+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,300;1,400&display=swap";@import "https://fonts.googleapis.com/css2?family=DotGothic16&display=swap";@import "https://fonts.googleapis.com/css2?family=Dosis:wght@200..800&family=DotGothic16&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Jost:ital,wght@0,100..900;1,100..900&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap";@import "https://fonts.googleapis.com/css2?family=Dosis:wght@200..800&family=DotGothic16&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Jost:ital,wght@0,100..900;1,100..900&family=Manrope:wght@200..800&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap";@import "https://unpkg.com/open-props";@media (max-width:786px){h1.projects-heading{font-size:3rem}}:root{--font-manrope:"DotGothic16",sans-serif;--font-dosis:"Dosis","Nunito",sans-serif;--font-primary:"Nunito",sans-serif;--font-secondary:"Josefin Sans","Courier New",Courier,monospace,sans-serif;--font-robo:"Roboto","Courier New",Courier,monospace,sans-serif;--font-robo-mono:"Roboto Mono","Roboto";--font-goth:"DotGothic16",sans-serif;--black:#101010;--gray-0:#f8f9fa;--gray-1:#f1f3f5;--gray-2:#e9ecef;--gray-3:#dee2e6;--gray-4:#ced4da;--gray-5:#adb5bd;--gray-6:#868e96;--gray-7:#495057;--gray-8:#343a40;--gray-9:#212529;--gray-10:#16191d;--gray-11:#0d0f12;--gray-12:#030507;--orange-0:#fff4e6;--orange-1:#ffe8cc;--orange-2:#ffd8a8;--orange-3:#ffc078;--orange-4:#ffa94d;--orange-5:#ff922b;--orange-6:#fd7e14;--orange-7:#f76707;--orange-8:#e8590c;--orange-9:#d9480f;--orange-10:#bf400d;--orange-11:#99330b;--orange-12:#802b09;--choco-0:#fff8dc;--choco-1:#fce1bc;--choco-2:#f7ca9e;--choco-3:#f1b280;--choco-4:#e99b62;--choco-5:#df8545;--choco-6:#d46e25;--choco-7:#bd5f1b;--choco-8:#a45117;--choco-9:#8a4513;--choco-10:#703a13;--choco-11:#572f12;--choco-12:#3d210d;--purple-0:#f8f0fc;--purple-1:#f3d9fa;--purple-2:#eebefa;--purple-3:#e599f7;--purple-4:#da77f2;--purple-5:#cc5de8;--purple-6:#be4bdb;--purple-7:#ae3ec9;--purple-8:#9c36b5;--purple-9:#862e9c;--purple-10:#702682;--purple-11:#5a1e69;--purple-12:#44174f;--navy-0:#e4e8ed;--navy-1:#c9d1da;--navy-2:#afbac8;--navy-3:#94a3b5;--navy-4:#7a8ca2;--navy-5:#60758f;--navy-6:#475e7b;--navy-7:#2e4868;--navy-8:#163254;--navy-9:#0a192f;--navy-10:#081428;--navy-11:#061021;--navy-12:#040c1a;--navy-12-hsl:#00081a}html{--green:#64ffda;--container-padding-inline:2rem;--content-max-width:1640px;--breakout-max-width:95dvw;--content-padding:24px;--header-size:100px;--breakout-size:calc((var(--breakout-max-width) - var(--content-max-width))/2);--brand-light:var(--orange-6);--text-1-light:var(--gray-8);--text-2-light:var(--gray-7);--surface-1-light:var(--gray-0);--surface-2-light:var(--gray-1);--surface-3-light:var(--gray-2);--surface-4-light:var(--gray-3);--surface-shadow-light:var(--gray-8-hsl);--shadow-strength-light:2%;--brand-dark:var(--orange-3);--text-1-dark:var(--gray-3);--text-2-dark:var(--gray-5);--surface-1-dark:var(--gray-12);--surface-2-dark:var(--gray-11);--surface-3-dark:var(--gray-10);--surface-4-dark:var(--gray-9);--surface-shadow-dark:var(--gray-12-hsl);--shadow-strength-dark:80%;--brand-dim:var(--orange-4);--text-1-dim:var(--gray-3);--text-2-dim:var(--gray-4);--surface-1-dim:var(--gray-8);--surface-2-dim:var(--gray-7);--surface-3-dim:var(--gray-6);--surface-4-dim:var(--gray-5);--surface-shadow-dim:200deg 100% 5%;--shadow-strength-dim:20%;--brand-grape:var(--purple-5);--text-1-grape:var(--purple-9);--text-2-grape:var(--purple-7);--surface-1-grape:var(--purple-0);--surface-2-grape:var(--purple-1);--surface-3-grape:var(--purple-2);--surface-4-grape:var(--purple-3);--surface-shadow-grape:220deg 100% 5%;--shadow-strength-grape:2%;--brand-choco:var(--choco-5);--text-1-choco:var(--choco-1);--text-2-choco:var(--choco-2);--surface-1-choco:var(--choco-12);--surface-2-choco:var(--choco-11);--surface-3-choco:var(--choco-10);--surface-4-choco:var(--choco-9);--surface-shadow-choco:25deg 65% 11%;--shadow-strength-choco:50%;--brand-navy:var(--green);--text-1-navy:var(--navy-1);--text-2-navy:var(--navy-2);--surface-1-navy:var(--navy-12);--surface-2-navy:var(--navy-11);--surface-3-navy:var(--navy-10);--surface-4-navy:var(--navy-9);--surface-shadow-navy:220deg 100% 5%;--shadow-strength-navy:50%}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:var(--brand-light);--text-1:var(--text-1-light);--text-2:var(--text-2-light);--surface-1:var(--surface-1-light);--surface-2:var(--surface-2-light);--surface-3:var(--surface-3-light);--surface-4:var(--surface-4-light);--surface-shadow:var(--surface-shadow-light);--shadow-strength:var(--shadow-strength-light)}@media (prefers-color-scheme:dark){:root{--csstools-color-scheme--light: ;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:var(--brand-dark);--text-1:var(--text-1-dark);--text-2:var(--text-2-dark);--surface-1:var(--surface-1-dark);--surface-2:var(--surface-2-dark);--surface-3:var(--surface-3-dark);--surface-4:var(--surface-4-dark);--surface-shadow:var(--surface-shadow-dark);--shadow-strength:var(--shadow-strength-dark)}}[color-scheme=light]{--csstools-color-scheme--light:initial;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:var(--brand-light);--text-1:var(--text-1-light);--text-2:var(--text-2-light);--surface-1:var(--surface-1-light);--surface-2:var(--surface-2-light);--surface-3:var(--surface-3-light);--surface-4:var(--surface-4-light);--surface-shadow:var(--surface-shadow-light);--shadow-strength:var(--shadow-strength-light)}[color-scheme=dark]{--csstools-color-scheme--light: ;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:var(--brand-dark);--text-1:var(--text-1-dark);--text-2:var(--text-2-dark);--surface-1:var(--surface-1-dark);--surface-2:var(--surface-2-dark);--surface-3:var(--surface-3-dark);--surface-4:var(--surface-4-dark);--surface-shadow:var(--surface-shadow-dark);--shadow-strength:var(--shadow-strength-dark)}[color-scheme=dim]{--csstools-color-scheme--light: ;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand:var(--brand-dim);--text-1:var(--text-1-dim);--text-2:var(--text-2-dim);--surface-1:var(--surface-1-dim);--surface-2:var(--surface-2-dim);--surface-3:var(--surface-3-dim);--surface-4:var(--surface-4-dim);--surface-shadow:var(--surface-shadow-dim);--shadow-strength:var(--shadow-strength-dim)}[color-scheme=grape]{--csstools-color-scheme--light:initial;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:var(--brand-grape);--text-1:var(--text-1-grape);--text-2:var(--text-2-grape);--surface-1:var(--surface-1-grape);--surface-2:var(--surface-2-grape);--surface-3:var(--surface-3-grape);--surface-4:var(--surface-4-grape);--surface-shadow:var(--surface-shadow-grape);--shadow-strength:var(--shadow-strength-grape)}[color-scheme=choco]{--csstools-color-scheme--light:initial;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:var(--brand-choco);--text-1:var(--text-1-choco);--text-2:var(--text-2-choco);--surface-1:var(--surface-1-choco);--surface-2:var(--surface-2-choco);--surface-3:var(--surface-3-choco);--surface-4:var(--surface-4-choco);--surface-shadow:var(--surface-shadow-choco);--shadow-strength:var(--shadow-strength-choco)}[color-scheme=navy]{--csstools-color-scheme--light:initial;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand:var(--brand-navy);--text-1:var(--text-1-navy);--text-2:var(--text-2-navy);--surface-1:var(--surface-1-navy);--surface-2:var(--surface-2-navy);--surface-3:var(--surface-3-navy);--surface-4:var(--surface-4-navy);--surface-shadow:var(--surface-shadow-navy);--shadow-strength:var(--shadow-strength-navy)}*{box-sizing:border-box;margin:0;padding:0}html{--csstools-color-scheme--light:initial;accent-color:#fd7e14;accent-color:var(--brand);background-color:#f8f9fa;background-color:var(--surface-1);color:var(--text-1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Avenir,Helvetica,Arial;font-size:62.5%}html[data-theme=dark]{--csstools-color-scheme--light: ;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports not (color-scheme:dark){html[data-theme=dark]{background:#111}}body{grid-gap:var(--size-1);gap:var(--size-1);grid-template-columns:[full-width-start]minmax(2rem,1fr)[breakout-start]minmax(0,calc(47.5dvw - 820px))[content-start]min(100% - 4rem,1640px)[content-end]minmax(0,calc(47.5dvw - 820px))[breakout-end]minmax(2rem,1fr)[full-width-end];grid-template-columns:[full-width-start]minmax(2rem,1fr)[breakout-start]minmax(0,var(--breakout-size))[content-start]min(100% - 4rem,var(--content-max-width))[content-end]minmax(0,var(--breakout-size))[breakout-end]minmax(2rem,1fr)[full-width-end];overscroll-behavior:contain;scrollbar-color:#fd7e14;scrollbar-color:var(--brand);scrollbar-width:thin;width:100dvw;min-height:100dvh;transition:all .6s;display:grid}body::-webkit-scrollbar-track{background-color:#0000;margin:3px 0}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-thumb{background-color:#fd7e14;background-clip:padding-box;background-color:var(--brand);border:0;border-right:5px solid #0000}@media (max-width:768px){body{display:inline-grid}}footer,header{width:100%;margin-left:auto;margin-right:auto}main{grid-column:breakout;grid-template-columns:[nav-start]minmax(0,calc(47.5dvw - 820px))[main-start]min(100% - 2rem,1640px)[main-end]minmax(0,calc(47.5dvw - 820px))[nav-end]minmax(2rem,1fr);grid-template-columns:[nav-start]minmax(0,var(--breakout-size))[main-start]min(100% - 2rem,var(--content-max-width))[main-end]minmax(0,var(--breakout-size))[nav-end]minmax(2rem,1fr);margin-top:-var(--header-size);display:grid;position:relative}main .main-content{scroll-behavior:smooth;scroll-snap-type:y mandatory;scrollbar-width:none;flex-direction:column;grid-column:main-start/main-end;height:100vh;display:flex;overflow-y:scroll}main .main-content::-webkit-scrollbar{display:none}@media (max-width:768px){main{grid-column:auto;grid-template-columns:1fr;width:100dvw;display:inline-grid}main>nav#nav{display:none}main .main-content{grid-column:1;width:100vw}}main section.content{scroll-snap-align:start;scroll-snap-stop:always;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100vh;min-height:100vh;display:flex}h1{font-weight:var(--font-weight-1)}.header{gap:var(--size-3);display:inline-grid}form{gap:var(--size-5);flex-direction:column;margin-right:5rem;display:flex}form>div{align-items:center;gap:var(--size-2);display:inline-flex}.surface-samples{--size:var(--size-content-2);grid-auto-rows:var(--size);grid-template-columns:var(--size)var(--size);grid-gap:var(--size-5);gap:var(--size-5);display:grid}@media (max-width:480px){.surface-samples{--size:40vw}}.surface-samples>*{border-radius:var(--radius-3);font-size:var(--font-size-8);font-weight:var(--font-weight-2);place-content:center;display:grid}.text-samples{grid-gap:var(--size-4);gap:var(--size-4);display:grid}.text-samples>h1{font-size:var(--font-size-6);align-items:center;gap:var(--size-3);display:inline-flex}.brand{background-color:#fd7e14;background-color:var(--brand);color:var(--brand)}.surface-1{background-color:#f8f9fa;background-color:var(--surface-1)}.surface-1,.surface-2{color:var(--text-2)}.surface-2{background-color:#f1f3f5;background-color:var(--surface-2)}.surface-3{background-color:#e9ecef;background-color:var(--surface-3)}.surface-3,.surface-4{color:var(--text-1)}.surface-4{background-color:#dee2e6;background-color:var(--surface-4)}.text-1{color:var(--text-1)}.text-1>p{font-weight:var(--font-weight-2)}.text-2{color:var(--text-2)}.swatch{border-radius:var(--radius-round);height:var(--size-8);width:var(--size-8);flex-shrink:0;display:inline-block}.swatch.text-1{background-color:#343a40;background-color:var(--text-1)}.swatch.text-2{background-color:#495057;background-color:var(--text-2)}.rad-shadow{border:1px solid hsl(var(--brand-hue),10%,50%,15%);box-shadow:0 1rem .5rem -.5rem;box-shadow:0 2.8px 2.2px hsl(var(--surface-shadow)/5%),0 6.7px 5.3px hsl(var(--surface-shadow)/3%),0 12.5px 10px hsl(var(--surface-shadow)/4%),0 22.3px 17.9px hsl(var(--surface-shadow)/4%),0 41.8px 33.4px hsl(var(--surface-shadow)/5%),0 100px 80px hsl(var(--surface-shadow)/2%);box-shadow:0 2.8px 2.2px hsl(var(--surface-shadow)/calc(var(--shadow-strength) + 3%)),0 6.7px 5.3px hsl(var(--surface-shadow)/calc(var(--shadow-strength) + 1%)),0 12.5px 10px hsl(var(--surface-shadow)/calc(var(--shadow-strength) + 2%)),0 22.3px 17.9px hsl(var(--surface-shadow)/calc(var(--shadow-strength) + 2%)),0 41.8px 33.4px hsl(var(--surface-shadow)/calc(var(--shadow-strength) + 3%)),0 100px 80px hsl(var(--surface-shadow)/var(--shadow-strength))}.icon-container{grid-area:span 2/span 2;place-content:center;place-items:center;display:flex}.icon-container>svg{fill:var(--surface-4);width:80%;height:80%;stroke:var(--brand);paint-order:stroke;stroke-linecap:round;stroke-linejoin:round}@view-transition{navigation:auto}a{-webkit-text-decoration:inherit;text-decoration:inherit}a:link,a:visited{color:var(--text-2);-webkit-text-decoration:none;text-decoration:none}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}.navigation{background-color:#f8f9fa;background-color:var(--surface-1);border-top:4px solid #fd7e14;border-top:4px solid var(--brand);height:100px;height:var(--header-size);z-index:5;border-radius:1px;grid-column:full-width-start/full-width-end;position:sticky;top:0;box-shadow:0 1px 8px -4px #0000001a}.navigation,.navigation>section#header{width:100%;margin-left:auto;margin-right:auto}.navigation>section#header{max-width:calc(95dvw - 30rem);max-width:calc(var(--breakout-max-width) - 30rem);grid-column:content;justify-content:space-between;align-items:center;display:flex}.navigation>section#header>nav.resume{flex-direction:column;display:flex}.navigation>section#header>nav.resume>span{border-top:2px solid #343a40;border-top:2px solid var(--text-1);width:30%}.navigation>section#header>nav.resume a{-webkit-appearance:none;appearance:none;color:var(--text-1);cursor:pointer;font-family:Roboto Mono,Roboto;font-family:var(--font-robo-mono);text-align:center;background:0 0;border:0;outline:none;min-width:5rem;min-height:3rem;font-size:18px;font-weight:500;line-height:1.1;-webkit-text-decoration:none;text-decoration:none;padding:.6rem 1.2rem .25rem 0!important}.navigation>section#header>.logo{align-items:center;display:flex}.navigation>section#header>.logo>a{align-items:center;width:auto;height:auto;display:flex}.navigation>section#header>.logo>a:hover>span{color:var(--text-2)}.navigation>section#header>.logo>a>span{color:var(--text-1);font-family:Josefin Sans,Courier New,Courier,monospace,sans-serif;font-family:var(--font-secondary);font-size:6rem;font-weight:700;transition:color .3s ease-in}@media (max-width:786px){.navigation>section#header>.logo>a>span{font-size:4rem}}.navigation>section#header>.logo>a>svg{--path1Length:239.725;--path2Length:326.598;--strokeIncrement:4;--strokeCalc:0;fill:var(--brand);width:100%;height:100%;stroke:var(--brand);paint-order:stroke;stroke-linecap:round;stroke-linejoin:round}.navigation>section#header>.logo>a>svg>path:first-of-type{stroke-dasharray:var(--path1Length);stroke-dashoffset:calc(var(--strokeIncrement)/2)}.navigation>section#header>.logo>a>svg>path:last-of-type{stroke-dasharray:var(--path2Length);stroke-dashoffset:calc(var(--strokeIncrement)/2)}.navigation>section#header>.nav{display:flex}.navigation>section#header nav>.nav__list{margin:0;padding:0;list-style:none;display:flex}.navigation>section#header nav>.nav__list>.nav__item>.nav__link{color:var(--text-2);padding:.5rem 1rem;font-size:1.75rem;-webkit-text-decoration:none;text-decoration:none;display:flex}.navigation>section#header nav>.nav__list>.nav__item{place-content:center;place-items:center;list-style:none;display:flex}.navigation>section#header nav>.nav__list>.nav__item span{color:var(--brand);font-family:Roboto Mono,Roboto;font-family:var(--font-robo-mono);align-items:center;margin-right:.5rem;font-size:1.25rem;display:flex}.navigation>section#header nav>.nav__list>.nav__item:has(>button){place-content:center;place-items:center;height:50%;margin-top:2%;display:flex}.navigation>section#header nav>.nav__list>.nav__item:has(>button):before{border-left:1px solid #343a40;border-left:1px solid var(--text-1);content:"";width:1px;height:100%;margin-left:1.25rem;margin-right:2rem;display:block}.navigation>section#header nav>.nav__list>.nav__item>button{cursor:pointer;background-color:#0000;border:none;outline:none}.navigation>section#header nav>.nav__list>.nav__item>button svg{width:2.2rem;height:1.8rem}@media (max-width:768px){.navigation>section#header{max-width:100%;padding-top:0;padding-bottom:0}.navigation{width:100dvw;height:auto;margin:0;padding:1rem}}nav>.nav{display:flex}nav>.nav__list{flex-direction:column;align-items:center;gap:2.5rem;margin:0;padding:0;list-style:none;display:flex}nav>.nav__list>.nav__item>.nav__link{color:var(--text-2);text-transform:lowercase;writing-mode:sideways-rl;padding:.5rem 0;font-size:1.75rem;font-weight:300;-webkit-text-decoration:none;text-decoration:none;transition:color .1s ease-in;display:flex;position:relative;transform:rotate(180deg)}nav>.nav__list>.nav__item>.nav__link>span{display:none}nav>.nav__list>.nav__item>.nav__link[aria-selected=true]{color:var(--brand)}nav>.nav__list>.nav__item>.nav__link[aria-selected=true] span{color:var(--text-2)}nav>.nav__list>.nav__item>.nav__link[aria-selected=true]:after{background-color:#fd7e14;background-color:var(--brand);content:"";border-radius:1000px;width:30%;height:3px;margin-top:.5rem;display:block;position:absolute;top:5px;bottom:0;left:-3px;right:auto}nav>.nav__list>.nav__item{place-content:center;place-items:center;list-style:none;display:flex}nav>.nav__list>.nav__item span{color:var(--brand);font-family:DotGothic16,sans-serif;font-family:var(--font-manrope);align-items:center;margin-right:.5rem;font-size:1.25rem;font-style:normal;font-weight:400;display:flex}nav>.nav__list>.nav__item:has(>button){place-content:center;place-items:center;height:50%;margin-top:2%;display:flex}nav>.nav__list>.nav__item:has(>button):before{border-left:1px solid #343a40;border-left:1px solid var(--text-1);content:"";width:1px;height:100%;margin-left:1.25rem;margin-right:2rem;display:block}nav>.nav__list>.nav__item>button{cursor:pointer;background-color:#0000;border:none;outline:none}nav>.nav__list>.nav__item>button svg{width:2.2rem;height:1.8rem}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus{outline:4px auto -webkit-focus-ring-color}button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.sun-and-moon .moon,.sun-and-moon .sun,.sun-and-moon .sun-beams{transform-origin:50%}.sun-and-moon .moon,.sun-and-moon .sun{fill:var(--text-1)}.theme-toggle:focus-visible>.sun-and-moon .moon{fill:var(--text-2)}.theme-toggle:focus-visible>.sun-and-moon .sun{fill:var(--text-2)}.theme-toggle:hover>.sun-and-moon .moon,.theme-toggle:hover>.sun-and-moon .sun{fill:var(--text-2)}.sun-and-moon>.sun-beams{stroke:var(--text-1);stroke-width:2px}.theme-toggle:focus-visible .sun-and-moon>.sun-beams{stroke:var(--text-2)}.theme-toggle:hover .sun-and-moon>.sun-beams{stroke:var(--text-2)}.theme-toggle{--size:2rem;--icon-fill:#454d54;--icon-fill-hover:#22262a;aspect-ratio:1;cursor:pointer;height:2rem;height:var(--size);touch-action:manipulation;width:2rem;width:var(--size);-webkit-tap-highlight-color:#0000;outline-offset:5px;background:0 0;border:none;border-radius:50%;padding:0}.theme-toggle>svg{stroke-linecap:round;width:100%;height:100%}@media (hover:none){.theme-toggle{--size:48px}}html:not([color-scheme=light]) .sun-and-moon>.sun{transform:scale(1.5)}html:not([color-scheme=light]) .sun-and-moon>.sun-beams{opacity:0}html:not([color-scheme=light]) .sun-and-moon>.moon>circle{transform:translate(-7px)}@supports (cx:1){html:not([color-scheme=light]) .sun-and-moon>.moon>circle{cx:17;transform:translate(0)}}html:not([color-scheme=light]){--icon-fill:#abb3ba;--icon-fill-hover:#e2e6e9}html:not([color-scheme=light]) .sun{transition-duration:.25s;transition-timing-function:var(--ease-3);transform:scale(1.75)}html:not([color-scheme=light]) .sun-beams{transition-duration:.15s;transform:rotate(-25deg)}html:not([color-scheme=light]) .moon>circle{transition-duration:.5s;transition-delay:.25s}@media (prefers-reduced-motion:no-preference){.sun{transition:transform .5s var(--ease-elastic-3)}.sun-beams{transition:transform .5s var(--ease-elastic-4),opacity .5s var(--ease-3)}.moon>circle{transition:transform .25s var(--ease-out-5)}@supports (cx:1){.moon>circle{transition:cx .25s var(--ease-out-5)}}html:not([color-scheme=light]) .sun{transition-duration:.25s;transition-timing-function:var(--ease-3);transform:scale(1.75)}html:not([color-scheme=light]) .sun-beams{transition-duration:.15s;transform:rotate(-25deg)}html:not([color-scheme=light]) .moon>circle{transition-duration:.5s;transition-delay:.25s}.sun-and-moon>.sun{transition:transform .5s var(--ease-elastic-3)}}.skip-link{background:#fd7e14;background:var(--brand);color:var(--surface-1);z-index:1000;border-radius:4px;padding:8px;font-weight:700;-webkit-text-decoration:none;text-decoration:none;position:absolute;top:-40px;left:6px}.skip-link:focus{top:6px}.content{width:100%}.content>h1{color:var(--text-2);letter-spacing:2px;font-size:5rem;font-weight:600}nav#nav{height:100%;width:calc(47.5dvw - 820px);height:100dvh;width:var(--breakout-size);z-index:1;grid-column:nav-start;position:sticky;top:0;bottom:auto;left:0;right:auto}nav#nav>nav{height:inherit;width:inherit;justify-content:flex-end;padding-right:1rem}#intro.content,nav#nav>nav{align-items:center;display:flex}#intro.content{place-content:center;place-items:center;width:min(65%,1440px);margin-left:auto;margin-right:auto;padding-top:10rem;padding-bottom:0}#intro.content>*{width:100%}#intro.content .intro__btn-set{gap:2rem;margin-top:2.5rem;display:flex}#intro.content .intro__btn-set>a.intro__btn{background-color:#f1f3f5;background-color:var(--surface-2);border:1px solid #fd7e14;border:1px solid var(--brand);color:var(--brand);cursor:pointer;border-radius:8px;align-self:start;padding:1.5rem 2.5rem;font-family:Roboto Mono,Roboto;font-size:1.8rem;font-weight:400;-webkit-text-decoration:none;text-decoration:none;transition:all .6s;display:inline-block}#intro.content .intro__btn-set>a.intro__btn:hover{background-color:#fd7e14;background-color:var(--brand);color:var(--surface-1);transform:scale(.9)}#intro.content .intro__btn-set>a.intro__btn:focus{outline:2px solid #fd7e14;outline:2px solid var(--brand);outline-offset:2px}.theme{place-content:center;place-items:flex-start center;gap:3rem;width:100%;display:flex}.theme>section{min-width:50rem}.intro#home{place-content:center;place-items:center;display:flex}.intro#home>h1{border-right:.05em solid #fd7e14;border-right:.05em solid var(--brand);color:var(--text-2);font-family:Dosis,Nunito,sans-serif;font-family:var(--font-dosis);letter-spacing:.1em;white-space:nowrap;margin:0 auto;font-size:clamp(2.125rem,3.464vw + 1.229rem,7.5rem);font-weight:400;line-height:clamp(4.688rem,3.349vw + 3.821rem,6.5rem);animation:5s steps(20,end) typing,.95s step-end infinite blink-caret;overflow:hidden;transform:translateY(-10rem)}.intro#home>h1>small{margin-left:-2rem;font-weight:600}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:#fd7e14;border-color:var(--brand)}}.nav{position:absolute;left:0}#projects{flex-flow:column;display:flex}#home,#projects{position:relative}#projects{height:calc(100dvh - 100px);height:calc(100dvh - var(--header-size));min-height:calc(100dvh - 100px);min-height:calc(100dvh - var(--header-size));padding-top:calc(100px + 2rem);padding-top:calc(var(--header-size) + 2rem);justify-content:space-between}@media (max-width:786px){#projects{padding-top:0}#projects>h1{margin-bottom:3rem;font-size:3rem}}#projects.section.projects-page{padding-top:0}#projects.section.projects-page>ul{width:100%}#projects.section.projects-page>ul>li{max-width:90%;margin-bottom:12rem}#experience{height:calc(100dvh - 100px);height:calc(100dvh - var(--header-size));min-height:calc(100dvh - 100px);min-height:calc(100dvh - var(--header-size));padding-top:calc(100px + 2rem);padding-top:calc(var(--header-size) + 2rem);justify-content:space-between}#about,#contact,#experience{position:relative}.intro{display:block}.intro__start{color:var(--brand);margin-bottom:1.5rem;font-family:Roboto Mono,Roboto;font-size:1.4rem}.intro__text{color:var(--text-2);text-align:justify;min-width:65rem;margin:1.25rem 0 0;font-size:1.8rem;line-height:1.3}.intro__text,.intro__text>a{font-family:Roboto,Courier New,Courier,monospace,sans-serif}.intro__text>a{color:var(--brand);font-weight:500;-webkit-text-decoration:none;text-decoration:none}.intro .heading__main-primary{color:var(--text-1);margin:0 0 0 -10px;font-family:Nunito,sans-serif;font-size:max(6rem,min(10vw,10rem));font-weight:700;line-height:1.1}.intro .heading__main-secondary{color:var(--text-2);margin:0;font-family:Nunito,sans-serif;font-size:max(3rem,min(3.5vw,5rem));font-weight:700;line-height:1.1}.heading{display:inline-block}.projects{flex-direction:column;justify-content:center;row-gap:5rem;width:70%;max-width:100%;min-height:auto;display:flex}.projects span{color:var(--text-1);font-family:Roboto Mono,Roboto;font-family:var(--font-robo-mono);padding-right:1.5rem;font-size:2rem}.projects a{color:inherit;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;-webkit-text-decoration:none;text-decoration:none;display:inline-block}@media only screen and (max-width:786px){.projects{width:100%;max-width:100%;margin-top:20rem}}ul{margin:0;padding:0;list-style:none}svg{height:100%}img,svg{width:100%}img{vertical-align:middle;max-width:100%}.project__right{grid-gap:10px;grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(12,1fr);align-items:center;margin:30px 30px 5rem;display:grid}@media only screen and (max-width:786px){.project__right{margin:0 0 4rem}}@media screen and (max-width:786px){.project__right{align-items:flex-start}}.project__left{grid-gap:10px;grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(12,1fr);align-items:center;margin:30px 30px 5rem;display:grid}@media only screen and (max-width:786px){.project__left{margin:0 0 4rem}}@media screen and (max-width:786px){.project__left{align-items:flex-start}}ul[data-project-lists]{width:70%;margin-left:auto;margin-right:auto}@media (max-width:786px){ul[data-project-lists]{width:90%;margin-top:2rem}}.icon{cursor:pointer;fill:var(--text-1);width:2rem;height:2rem;transition:fill .2s ease-in}.icon:hover{fill:var(--brand)}.projects-cta{justify-content:center;margin-bottom:2rem;display:flex}.projects-cta>a{background-color:#fd7e14;background-color:var(--brand);border-radius:var(--size-2);color:var(--surface-1);padding:var(--size-4)var(--size-8);align-items:center;font-size:1.6rem;font-weight:500;display:flex}.projects-view-all-btn{border:2px solid #fd7e14;border:2px solid var(--brand);color:var(--brand);font-family:Roboto,Courier New,Courier,monospace,sans-serif;font-family:var(--font-robo);background:0 0;border-radius:.25rem;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1rem;font-weight:500;-webkit-text-decoration:none;text-decoration:none;transition:all .3s;display:inline-flex}.projects-view-all-btn:focus,.projects-view-all-btn:hover{background:#fd7e14;background:var(--brand);color:var(--surface-1);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.projects-view-all-btn:focus{outline:2px solid #fd7e14;outline:2px solid var(--brand);outline-offset:2px}.projects-view-all-btn .icon{transition:transform .3s}.projects-view-all-btn:hover .icon{transform:translate(4px)}.projects--full{width:100%;max-width:none;min-height:auto;display:block}.projects--full .project__left,.projects--full .project__right{max-width:1000px;margin-bottom:4rem;margin-left:auto;margin-right:auto}@media only screen and (max-width:786px){.projects--full .project__left,.projects--full .project__right{margin-bottom:3rem}}.projects--full{scroll-snap-align:none}.projects-page h1{text-align:left;margin-bottom:3rem}@media only screen and (max-width:786px){.projects-page h1{text-align:center;margin-bottom:2rem}}.resume-page{padding:2rem 0}@media print{.resume-page{padding:0}}.resume-container{background:#f8f9fa;background:var(--surface-1);color:var(--text-1);max-width:900px;margin:0 auto;line-height:1.6}@media print{.resume-container{box-shadow:none;max-width:none;margin:0;color:#000!important;background:#fff!important}}.resume-header{background:#f1f3f5;background:var(--surface-2,#f8f9fa);border-bottom:3px solid #fd7e14;border-bottom:3px solid var(--brand);border-radius:.5rem .5rem 0 0;padding:3rem 2rem 2rem}@media print{.resume-header{border-bottom:2px solid #ff922b;border-radius:0;padding:1rem;background:#fff!important}}@media only screen and (max-width:768px){.resume-header{padding:2rem 1rem 1.5rem}}.resume-header-content{justify-content:space-between;align-items:flex-start;margin-bottom:2rem;display:flex}@media only screen and (max-width:768px){.resume-header-content{flex-direction:column;gap:1.5rem}}.resume-name{color:var(--text-1);font-family:Roboto Mono,Roboto;font-family:var(--font-robo-mono,"Roboto Mono",monospace);margin:0;font-size:max(2.5rem,min(4vw,3.5rem));font-weight:300;line-height:1.2}@media print{.resume-name{font-size:2.5rem;color:#000!important}}.resume-title{color:var(--brand);margin:.5rem 0 0;font-size:1.5rem;font-weight:500}@media print{.resume-title{font-size:1.3rem;color:#ff922b!important}}.resume-contact{flex-direction:column;gap:1rem;display:flex}@media only screen and (max-width:768px){.resume-contact{align-self:stretch}}.resume-contact-group{flex-direction:column;gap:.5rem;display:flex}.resume-contact-item{color:var(--text-2,#6c757d);align-items:center;gap:.5rem;font-size:.95rem;-webkit-text-decoration:none;text-decoration:none;transition:color .2s;display:flex}.resume-contact-item:hover{color:var(--brand)}.resume-contact-item svg{opacity:.8;flex-shrink:0}@media print{.resume-contact-item,.resume-contact-item:hover{color:#333!important}}.resume-actions{justify-content:flex-end;gap:1rem;display:flex}@media print{.resume-actions{display:none!important}}@media only screen and (max-width:768px){.resume-actions{justify-content:center;margin-top:1rem}}.resume-btn{cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;-webkit-text-decoration:none;text-decoration:none;transition:all .2s;display:inline-flex}.resume-btn:focus{outline:2px solid #fd7e14;outline:2px solid var(--brand);outline-offset:2px}.resume-btn-primary{background:#fd7e14;background:var(--brand);color:var(--surface-1)}.resume-btn-primary:hover{background:#fd7e14;background:var(--brand);transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.resume-btn-secondary{border:2px solid #495057;border:2px solid var(--text-2);color:var(--text-1);background:0 0}.resume-btn-secondary:hover{background:#495057;background:var(--text-2);color:var(--surface-1);transform:translateY(-1px)}.resume-content{padding:2rem}@media print{.resume-content{padding:1rem}}@media only screen and (max-width:768px){.resume-content{padding:1.5rem 1rem}}.resume-section{margin-bottom:3rem}.resume-section:last-child{margin-bottom:0}@media print{.resume-section{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:2rem}}.resume-section-title{border-bottom:2px solid #fd7e14;border-bottom:2px solid var(--brand);color:var(--brand);font-family:Roboto Mono,Roboto;font-family:var(--font-robo-mono,"Roboto Mono",monospace);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:500;position:relative}@media print{.resume-section-title{margin-bottom:1rem;font-size:1.3rem;color:#ff922b!important}}.resume-summary{color:var(--text-1);font-size:1.4rem;line-height:1.7}@media print{.resume-summary{font-size:1rem;color:#000!important}}.resume-experience-item{margin-bottom:2.5rem}.resume-experience-item:last-child{margin-bottom:0}@media print{.resume-experience-item{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid;margin-bottom:1.5rem}}.resume-experience-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}@media only screen and (max-width:768px){.resume-experience-header{flex-direction:column;gap:.5rem}}.resume-experience-title h3{color:var(--text-1);margin:0;font-size:1.6rem;font-weight:600}@media print{.resume-experience-title h3{font-size:1.2rem;color:#000!important}}.resume-experience-title h4{color:var(--brand);margin:.2rem 0 0;font-size:1.6rem;font-weight:500}@media print{.resume-experience-title h4{color:#ff922b!important}}.resume-experience-meta{text-align:right;flex-direction:column;align-items:flex-end;display:flex}@media only screen and (max-width:768px){.resume-experience-meta{text-align:left;align-items:flex-start}}.resume-period{color:var(--text-1);font-weight:600}@media print{.resume-period{color:#000!important}}.resume-location{color:var(--text-2);font-size:.9rem}@media print{.resume-location{color:#666!important}}.resume-experience-description{margin:0 0 1rem;padding:0;list-style:none}.resume-experience-description li{color:var(--text-1);margin-bottom:.5rem;padding-left:1.5rem;position:relative}.resume-experience-description li:before{color:var(--brand);content:"▸";font-weight:700;position:absolute;left:0}@media print{.resume-experience-description li{color:#000!important}.resume-experience-description li:before{color:#ff922b!important}}.resume-technologies{color:var(--text-2);font-size:.9rem}.resume-technologies strong{color:var(--text-1)}@media print{.resume-technologies strong{color:#000!important}.resume-technologies{color:#666!important}}.resume-education-item{margin-bottom:2rem}.resume-education-item:last-child{margin-bottom:0}@media print{.resume-education-item{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}}.resume-education-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}@media only screen and (max-width:768px){.resume-education-header{flex-direction:column;gap:.5rem}}.resume-education-title h3{color:var(--text-1);margin:0;font-size:1.5rem;font-weight:600}@media print{.resume-education-title h3{color:#000!important}}.resume-education-title h4{color:var(--brand);margin:.2rem 0 0;font-size:1.6rem;font-weight:500}@media print{.resume-education-title h4{color:#ff922b!important}}.resume-education-meta{text-align:right;flex-direction:column;align-items:flex-end;display:flex}@media only screen and (max-width:768px){.resume-education-meta{text-align:left;align-items:flex-start}}.resume-education-details{margin:0;padding:0;list-style:none}.resume-education-details li{color:var(--text-2);margin-bottom:.3rem;padding-left:1.5rem;font-size:.95rem;position:relative}.resume-education-details li:before{color:var(--brand);content:"•";position:absolute;left:0}@media print{.resume-education-details li{color:#666!important}.resume-education-details li:before{color:#ff922b!important}}.resume-project-item{margin-bottom:2rem}.resume-project-item:last-child{margin-bottom:0}@media print{.resume-project-item{page-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid}}.resume-project-header{justify-content:space-between;align-items:flex-start;margin-bottom:.8rem;display:flex}@media only screen and (max-width:768px){.resume-project-header{flex-direction:column;gap:.5rem}}.resume-project-header h3{color:var(--text-1);margin:0;font-size:1.2rem;font-weight:600}@media print{.resume-project-header h3{color:#000!important}}.resume-project-links{gap:1rem;display:flex}.resume-project-links a{color:var(--brand);font-size:.9rem;font-weight:500;-webkit-text-decoration:none;text-decoration:none}.resume-project-links a:hover{-webkit-text-decoration:underline;text-decoration:underline}@media print{.resume-project-links a{color:#ff922b!important}}.resume-project-description{color:var(--text-1);margin-bottom:.8rem;line-height:1.6}@media print{.resume-project-description{color:#000!important}}.resume-skills{grid-gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;display:grid}@media only screen and (max-width:768px){.resume-skills{grid-template-columns:1fr;gap:1rem}}.resume-skill-category h3{color:var(--text-1);margin:0 0 .5rem;font-size:1.1rem;font-weight:600}@media print{.resume-skill-category h3{color:#000!important}}.resume-skill-category p{color:var(--text-2);margin:0;line-height:1.6}@media print{.resume-skill-category p{color:#666!important}.resume-container{box-shadow:none!important}.resume-education-item,.resume-experience-item,.resume-project-item,.resume-section{page-break-inside:avoid}}@media only screen and (max-width:768px){.resume-container{border-radius:0;margin:0}.resume-header{border-radius:0}}#download-pdf,.resume-btn-secondary{font-size:1.4rem}#download-pdf>svg,.resume-btn-secondary>svg,.resume-contact-item>svg{width:2rem;height:2rem}:root{--csstools-color-scheme--light:initial;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Avenir,Helvetica,Arial;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--csstools-color-scheme--light: }}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus{outline:2px solid #fd7e14;outline:2px solid var(--brand);outline-offset:2px}a:focus,button:focus,input:focus{outline:1px solid #fd7e14;outline:1px solid var(--brand);outline-offset:2px;border-radius:4px;box-shadow:0 0 0 4px #ff922b4d}.skip-link:focus{outline:2px solid #f8f9fa;outline:2px solid var(--surface-1);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.main-content,html{scroll-behavior:auto}}
