/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}#root{margin:0 auto;text-align:center;--primary-font-color: #e2e8f0;--code-font-color: #53cebf;--light-color: #8892b0}body{background-color:#0a192f}.fadeup-enter,.fadeup-enter-active{opacity:.001;transform:translateY(20px);transition:opacity .3s ease,transform .3s ease-in-out}.fadeup-enter-done{opacity:1;transform:translateY(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out}.slide-in-email-enter,.slide-in-email-active{opacity:.001;transform:translate(150px)}.slide-in-email-done{opacity:1;transform:translate(0)}.fadedown-enter,.fadedown-enter-active{opacity:.01;transform:translateY(-20px);transition:opacity .3s ease-in-out,transform .3s ease-in-out}.fadedown-enter-done{opacity:1;transform:translateY(0);transition:opacity .3s ease-in-out,transform .3s ease-in-out}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity .5s ease-in-out}.hide-content{opacity:0;transition:opacity .01s ease-in-out}.main{display:flex;flex-direction:column;align-items:center}a{cursor:pointer;text-decoration:inherit;color:inherit;font-size:inherit;margin-top:inherit;transition:color .4s}a:hover{color:var(--code-font-color);transition:color .4s}#codeFont{font-family:Roboto Mono,monospace;color:var(--code-font-color)}#highlight{color:var(--code-font-color);font-weight:500}#highlightWork{color:var(--code-font-color)}#sectionTitle{color:var(--primary-font-color);font-size:30px;text-align:left;margin:60px 0}.CTA-button{background-color:transparent;color:var(--primary-font-color);border:1px solid var(--code-font-color);transition:transform .2s ease-in-out}.CTA-button:hover{transform:scale(1.05);box-shadow:0 0 10px #00800080;border-color:#a25cce}.CTA-button:focus{outline:none}.CTA-button:active{transform:scale(1.01)}.fade-effect{position:relative;display:flex}.fade-effect:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--code-font-color);opacity:.7;transition:opacity .3s ease;border-radius:5px}.fade-effect:hover:before{opacity:0}.navbar{display:flex;align-items:center;justify-content:space-between;padding:1px 40px;z-index:10;transition:transform .3s ease-in-out,opacity .3s ease-in-out;background-color:#0a192f80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.visible{transform:translateY(0);opacity:1;position:sticky;top:0;box-shadow:0 4px 6px #0003}.visible.at-top{box-shadow:none}.hidden{transform:translateY(-100%);opacity:0;position:sticky;top:0}.refresh-btn:hover{cursor:pointer}.logo{font-size:20px;font-weight:700;color:var(--primary-font-color)}.navbar>ul{display:flex;align-items:center;list-style:none;font-size:13px}.navbar-list li:last-child{margin-left:25px}.navLink-item{color:var(--primary-font-color);margin:0 10px;font-family:Roboto Mono,monospace}.navLink-item:hover{color:var(--code-font-color);cursor:pointer;transition:color .3s}#resume{border-radius:6px}.hero-section{min-height:90vh}.hero-container{text-align:left;margin-top:50px;margin-bottom:80px;width:100%;max-width:1100px}.hero-container p:first-child{font-size:19px;font-weight:400;margin-bottom:25px}.name{color:var(--primary-font-color);font-size:75px;margin-top:0;margin-bottom:0}.slogan{font-size:3.3em;margin-top:5px}.intro{font-size:20px;margin:45px 0;line-height:2rem}.tiktoklink:hover{text-decoration:underline}.hero-button{font-size:18px;padding:20px 25px}.sticky-email-hero,.email-animation-trigger{display:none}.aboutTitle{margin-top:0}.about-container{font-size:21px;display:flex;max-width:1100px;margin-bottom:150px}.about-section-info{text-align:left;padding-right:110px;font-size:17px}.about-section-info>p{font-weight:300}.about-section-info :first-child{margin-top:0}.tech-list{font-size:17px;list-style:none;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:5px}.tech-list li:before{content:"▹";color:var(--code-font-color);margin-right:7px}.headshot{max-width:400px;border-radius:5px}figcaption{font-size:15px;text-align:right}#tab-button{background-color:transparent;color:#8892b0;border-left:3px solid #4b5066;border-top:0px;border-bottom:0px;font-family:Roboto Mono,monospace;font-size:16px;font-weight:400;padding:18px 20px;margin-top:0;transition:background-color .3s ease,color .3s ease}#active-button{background-color:transparent;color:var(--code-font-color);border-left:3px solid #64ffda;border-top:0px;border-bottom:0px;font-family:Roboto Mono,monospace;font-size:16px;font-weight:400;padding:18px 20px;margin-top:0;box-shadow:-5px 0 5px #64ffda66;transition:background-color .3s ease,color .3s ease,transform .3s ease,box-shadow .3s ease}#tab-button:hover,#active-button:hover{background-color:#102343;color:var(--code-font-color)}#tab-button:focus,#active-button:focus{outline:none}.experience-container{display:flex;margin-bottom:150px}.tab-button-container{display:flex;flex-direction:column}.workplace{margin-left:20px;text-align:left;max-width:600px;transition:opacity .3s ease,display .3s ease}.active-workplace{animation:fade_in_show .8s}.inactive-workplace{display:none}@keyframes fade_in_show{0%{opacity:0}to{opacity:1}}.workplace>h2{margin-top:8px;margin-bottom:5px}.workplace>p{font-family:Roboto Mono,monospace;margin-top:0}.workplace>ul{list-style:none;padding-left:0}.workplace>ul>li{position:relative;padding-left:30px;font-size:17px;font-weight:300;margin:22px 0}.workplace>ul li:before{content:"▶";display:inline-block;position:absolute;left:0;top:6px;color:var(--code-font-color);margin-right:12px;font-size:11px}.project-container{max-width:1150px}.project-list{list-style:none;padding-inline-start:0px}.project-list>li{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;position:relative;align-items:center;margin:120px auto}.right{grid-area:1 / -1 / -1 / 7;text-align:right;justify-content:flex-end}.left{grid-area:1 / 1 / -1 / 8;text-align:left;justify-content:flex-start}.project-content{z-index:1}.project-content>p:first-child{margin-bottom:8px}.project-content>h3{color:var(--primary-font-color);font-size:27px;margin-top:0}.project-description{background-color:#112240;border-radius:6px;padding:15px 31px;font-size:16px;box-shadow:0 4px 5px #000a14e6;transition:box-shadow .3s ease}.project-description:hover{box-shadow:0 4px 15px #000a14e6}.project-tech{list-style:none;font-family:Roboto Mono,monospace;display:flex;padding:33px 0 5px}.project-tech>li{padding:0 10px;font-size:14px}#special-tech{color:#fffb7c}#puppeteer{color:#fb7cff}.project-links>a>i{font-size:25px;color:#bfccf5;margin:12px;transition:color .3s ease-in-out}.project-links>a>i:hover{color:var(--code-font-color);transition:color .3s ease-in-out}.project-image{max-width:100%;border-radius:8px}.contact-container{display:flex;flex-direction:column;align-items:center;margin-top:110px;margin-bottom:150px}.contact-container>span{font-family:Roboto Mono,monospace;color:var(--code-font-color)}.contact-container>h1{color:var(--primary-font-color);margin-bottom:15px}.contact-container>p{max-width:550px;font-size:18px;margin-bottom:50px}.footer{height:70px;padding-top:100px}.footer>div>p{font-family:Roboto Mono,monospace;font-size:12px}.sticky-email{font-family:Roboto Mono,monospace;font-size:14px;font-weight:400;display:flex;align-items:center;position:fixed;rotate:90deg;bottom:170px;right:-120px}.email{padding-right:10px;letter-spacing:1px;transition:all .3s ease-in-out}.email:hover{cursor:pointer;color:var(--code-font-color);transform:translate(-5px);transition:all .3s ease-in-out}.fine-line{border-top:1px solid #8892b0;height:0px;min-width:100px;flex-grow:1;margin-left:15px}.burger-nav{align-items:center;padding:5px 22px;justify-content:space-between;display:none;z-index:10;transition:transform .3s ease-in-out,opacity .3s ease-in-out;background-color:#0a192f80}.visible-nav-mobile{opacity:1;box-shadow:0 4px 6px #0003;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.visible-mobile.at-top{box-shadow:none;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.stick-it-top{position:fixed;top:0;z-index:10;width:100vw}.burger-menu{height:25px;width:25px;display:flex;flex-direction:column;cursor:pointer;justify-content:space-between}.burger-bar{width:25px;height:2px;border-radius:11px;background-color:var(--code-font-color)}.menu-blur{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:100vh;width:100%;position:absolute;z-index:2;transition:opacity .1s ease-in-out}.menu{width:65%;height:100vh;right:0;background-color:#112240;position:fixed;z-index:3;box-shadow:-10px 0 20px #0c182ecc;transition:transform .3s ease-in-out;transform:translate(0)}.visible-burger{overflow:hidden}.navbar-list-mobile{list-style:none}.navbar-list-mobile>span>li{margin:30px 10px}.hidden-burger{opacity:0;transform:translate(100%);transition:transform .4s ease-in-out,opacity .1s ease-in-out}.visible-burger{display:inherit}.burger-bar.clicked:nth-child(1){transform:rotate(45deg) translate(.1em,.65em);transition:ease-out .3s}.burger-bar.clicked:nth-child(2){transform:scale(.05);transition:ease-out .5s}.burger-bar.clicked:nth-child(3){transform:rotate(135deg) translate(-.4em,.95em);transition:ease-out .3s}.burger-bar.unclicked{transform:rotate(0) translate(0);transition:cubic-bezier(.175,.885,.32,1.275) .2s}.lock-menu{overflow:hidden}@media (max-width: 900px){#root,body{overflow-x:hidden}#sectionTitle{margin:30px 20px;font-size:22px}#sectionTitle>span{font-size:20px}.navbar{display:none}.burger-nav{display:flex}.hero-container{text-align:left;margin:140px 25px 100px;max-width:90%}.hero-container p:first-child{font-size:14px;margin-bottom:15px}.name{color:var(--primary-font-color);font-size:45px;margin-top:0;margin-bottom:0}.slogan{font-size:28px;margin-top:5px;max-width:80%}.intro{font-size:15px;margin:20px 0;line-height:1.5rem}.hero-button{font-size:13px;padding:20px 25px}.sticky-email-hero{display:inherit;font-family:Roboto Mono,monospace;color:--code-font-color;font-size:12px;font-weight:400;display:flex;align-items:center;justify-content:flex-end;margin-top:60px;position:relative;right:-20px;transition:opacity .3s ease-in-out,transform .3s ease-in-out}.email-animation-trigger{display:inherit;background-color:red;width:10px;height:10px;position:absolute;top:1000px}.aboutTitle{margin-top:0;padding-bottom:0}.about-container{flex-direction:column;align-items:center}.about-section-info{margin:0 25px;text-align:left;padding-right:0;font-size:15px}.tech-list{font-size:14px;margin:25px 0}.headshot,.about-section-headshot{max-width:300px}.experience-container{flex-direction:column;max-width:100vw}.tab-button-container{display:flex;flex-direction:row;max-width:100vw;overflow-x:scroll;box-sizing:border-box;padding:10px 0 10px 20px}#tab-button{font-size:14px;white-space:nowrap;border-left:0px;border-top:0px;border-bottom:1px solid #797f9b}#active-button{font-size:14px;white-space:nowrap;border-left:0px;border-top:0px;border-bottom:3px solid #64ffda;box-shadow:0 4px 6px #64ffda66}.all-workplaces{box-sizing:border-box;padding:0 15px}.workplace>ul>li{font-size:15px}.workplace>h2{font-size:18px;font-weight:600}.workplace>p{font-size:13px}.project-list{max-width:91%;margin:0 auto}.project-list>li{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;position:relative;align-items:center;margin:120px auto}.project-content{text-align:center;max-width:100%}.project-description{padding:15px 31px}.project-image-container{z-index:2;max-width:95%;position:relative}.right,.left{text-align:center;justify-content:center}.project-image-container.tiktok-adjustment{margin-top:-190px}.project-image-link.fade-effect:before{opacity:0}.contact-container{max-width:90%;margin:150px auto}.contact-container>h1{font-size:45px}.footer{max-width:90%}.sticky-email{font-family:Roboto Mono,monospace;font-size:12px;font-weight:400;display:flex;align-items:center;justify-content:flex-end;transition:transform .3s ease-in-out,opacity .3s ease-in-out;position:relative;rotate:0deg;bottom:170px;right:-22px;overflow-x:hidden}.fine-line{border-top:1px solid #8892b0;height:0px;min-width:40px;max-width:40px;flex-grow:1;margin-left:5px}.slide-in-mobile-start{opacity:0;transform:translate(400px)}}.skills-container{max-width:1200px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.skill-category-card{background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:25px;transition:all .3s ease;animation:fadeInUp .6s ease-out forwards;opacity:0;transform:translateY(20px)}.skill-category-card:nth-child(1){animation-delay:.1s}.skill-category-card:nth-child(2){animation-delay:.2s}.skill-category-card:nth-child(3){animation-delay:.3s}.skill-category-card:nth-child(4){animation-delay:.4s}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.skill-category-card:hover{background:rgba(255,255,255,.08);border-color:#64ffda4d;transform:translateY(-5px);box-shadow:0 10px 30px #0003}.category-header{display:flex;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid rgba(100,255,218,.2)}.category-icon{color:var(--code-font-color);margin-right:12px;opacity:.8}.category-title{font-size:20px;color:var(--code-font-color);margin:0;font-weight:600}.skills-grid{display:flex;flex-wrap:wrap;gap:12px}.skill-badge{background:rgba(100,255,218,.1);border:1px solid rgba(100,255,218,.2);border-radius:20px;padding:10px 16px;transition:all .3s ease;cursor:default;display:flex;flex-direction:column;min-width:120px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.skill-badge:hover{background:rgba(100,255,218,.15);border-color:#64ffda66;transform:translateY(-2px);box-shadow:0 4px 15px #64ffda33}.skill-name{font-size:14px;font-weight:600;color:var(--primary-font-color);font-family:Roboto Mono,monospace;margin-bottom:2px}.skill-description{font-size:11px;color:var(--light-color);opacity:.8;line-height:1.3}@media (max-width: 768px){.skills-container{grid-template-columns:1fr;padding:0 15px;gap:20px}.skill-category-card{padding:20px}.skills-grid{gap:10px}.skill-badge{padding:8px 12px;min-width:100px}.skill-name{font-size:13px}.skill-description{font-size:10px}.category-title{font-size:18px}}.additional-projects-strip{margin-top:80px;padding:40px 0;border-top:1px solid rgba(100,255,218,.2)}.strip-title{font-size:18px;color:var(--code-font-color);margin-bottom:30px;text-align:center;opacity:.8}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:1000px;margin:0 auto}.mini-project-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:20px;transition:all .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.mini-project-card:hover{background:rgba(255,255,255,.05);border-color:#64ffda33;transform:translateY(-2px)}.mini-project-content h4{margin:0 0 8px;font-size:16px;color:var(--primary-font-color)}.mini-project-content p{font-size:13px;color:var(--light-color);margin:0 0 12px;line-height:1.4}.mini-tech-stack{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}.mini-tech-stack span{background:rgba(100,255,218,.1);border:1px solid rgba(100,255,218,.2);border-radius:12px;padding:4px 8px;font-size:11px;color:var(--light-color);font-family:Roboto Mono,monospace}.mini-project-links{display:flex;gap:12px}.mini-project-links a{color:var(--light-color);font-size:14px;transition:color .3s ease}.mini-project-links a:hover{color:var(--code-font-color)}.mobile-projects-container{display:flex;flex-direction:column;gap:40px;padding:0 20px}.mobile-project-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:25px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);max-width:400px;margin:0 auto}.mobile-project-header{text-align:center;margin-bottom:20px}.mobile-project-header p{font-size:14px;margin-bottom:8px}.mobile-project-header h3{color:var(--primary-font-color);font-size:24px;margin:0}.mobile-project-description{padding:20px 0;font-size:14px;line-height:1.6;margin-bottom:20px;text-align:left}.mobile-project-image{text-align:center;margin-bottom:20px}.mobile-project-image img{max-width:100%;border-radius:8px;box-shadow:0 4px 15px #0000004d}.mobile-project-tech{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:15px}.mobile-project-tech span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:6px 12px;font-size:12px;color:var(--primary-font-color);font-family:Roboto Mono,monospace}.mobile-project-tech .special-tech{color:#53cebf}.mobile-project-links{display:flex;justify-content:center;gap:15px}.mobile-project-links a{color:#bfccf5;font-size:20px;transition:color .3s ease}.mobile-project-links a:hover{color:var(--code-font-color)}@media (max-width: 768px){.additional-projects-strip{margin-top:60px;padding:30px 0}.projects-grid{grid-template-columns:1fr;gap:15px;padding:0 15px}.mini-project-card{padding:15px}.strip-title{font-size:16px;margin-bottom:25px}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#e2e8f0;background-color:#0a192f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{margin:0;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#909ab9;background-color:#fff}button{background-color:#f9f9f9}}
