@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Roboto+Mono:wght@300;400;500;600&display=swap";.navbar{display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;z-index:11;padding:0 50px;width:100%;height:70px;background-color:#0a192fd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:var(--transition)}.navbar.scrolled{box-shadow:0 10px 30px -10px #020c1bb3}.nav{display:flex;justify-content:space-between;align-items:center;position:relative;width:100%;color:var(--lightest-slate);font-family:var(--font-mono);counter-reset:item 0;z-index:12}.logo{display:flex;justify-content:center;align-items:center}.logo a{color:var(--green);width:42px;height:42px;font-size:1.5rem;font-weight:700;border:2px solid var(--green);border-radius:4px;display:flex;justify-content:center;align-items:center}.nav-links{display:flex;align-items:center}.nav-links ol{display:flex;justify-content:space-between;align-items:center;padding:0;margin:0;list-style:none}.nav-links ol li{margin:0 5px;position:relative;counter-increment:item 1;font-size:13px}.nav-links ol li a{padding:10px}.nav-links ol li a span{color:var(--green);margin-right:5px;text-align:right;font-size:14px}.resume-button{margin-left:15px}.resume-button a{color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:4px;padding:.75rem 1rem;font-family:var(--font-mono);font-size:13px;line-height:1;text-decoration:none;transition:var(--transition)}.resume-button a:hover,.resume-button a:focus{background-color:#64ffda1a}.menu-button{display:none;position:relative;z-index:12}@media(max-width:768px){.navbar{padding:0 25px}.nav-links{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:0;right:0;bottom:0;padding:50px 10px;width:min(75vw,400px);height:100vh;outline:0;background-color:var(--light-navy);box-shadow:-10px 0 30px -15px #020c1bb3;z-index:9;transform:translate(100%);visibility:hidden;transition:var(--transition)}.nav-links.open{transform:translate(0);visibility:visible}.nav-links ol{flex-direction:column;text-align:center;width:100%}.nav-links ol li{margin:0 auto 15px;width:100%;font-size:18px}.nav-links ol li a{display:inline-block;padding:15px 0;width:100%}.resume-button{margin:20px auto 0}.menu-button{display:flex;justify-content:center;align-items:center;position:relative;z-index:10;margin-right:-15px;padding:15px;border:0;background-color:transparent;color:inherit;text-transform:none;transition-timing-function:linear;transition-duration:.15s;transition-property:opacity,filter}.ham-box{display:inline-block;position:relative;width:30px;height:24px}.ham-box-inner{position:absolute;top:50%;right:0;width:30px;height:2px;border-radius:4px;background-color:var(--green);transition-duration:.22s;transition-property:transform;transition-delay: ${props => (props.menuOpen ? `.12s` : `0s`)}transform:rotate(${props => (props.menuOpen ? `225deg` : `0deg`)});transition-timing-function:cubic-bezier(${props => (props.menuOpen ? `.215,.61,.355,1` : `.55,.055,.675,.19`)})}.ham-box-inner:before,.ham-box-inner:after{content:"";display:block;position:absolute;left:auto;right:0;width:30px;height:2px;border-radius:4px;background-color:var(--green);transition-timing-function:ease;transition-duration:.15s;transition-property:transform}.ham-box-inner:before{width: ${props => (props.menuOpen ? `100%` : `120%`)}top: ${props => (props.menuOpen ? `0` : `-10px`)}opacity: ${props => (props.menuOpen ? 0 : 1)}transition: ${({menuOpen}) => menuOpen ? "var(--ham-before-active)" : "var(--ham-before)"}}.ham-box-inner:after{width: ${props => (props.menuOpen ? `100%` : `80%`)}bottom: ${props => (props.menuOpen ? `0` : `-10px`)}transform:rotate(${props => (props.menuOpen ? `-90deg` : `0`)});transition: ${({menuOpen}) => menuOpen ? "var(--ham-after-active)" : "var(--ham-after)"}}}.hero{display:flex;justify-content:center;flex-direction:column;align-items:flex-start;min-height:100vh;padding:0}.hero-greeting{margin:0 0 30px 4px;color:var(--green);font-family:var(--font-mono);font-size:clamp(14px,5vw,16px);font-weight:400}.hero-title{margin:0;font-size:clamp(40px,8vw,80px);font-weight:600;color:var(--lightest-slate);line-height:1.1}.hero-subtitle{margin-top:5px;color:var(--slate);line-height:.9;font-size:clamp(40px,8vw,80px);font-weight:600}.hero-description{margin:20px 0 0;max-width:540px;color:var(--slate);font-size:clamp(16px,5vw,20px);line-height:1.5}.hero-button-container{margin-top:50px}.hero-button{color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:4px;padding:1.25rem 1.75rem;font-size:14px;font-family:var(--font-mono);line-height:1;text-decoration:none;cursor:pointer;transition:var(--transition)}.hero-button:hover,.hero-button:focus{background-color:#64ffda1a;outline:none}.about-section .section-title{font-size:clamp(40px,5vw,60px);margin:0 0 40px;color:var(--lightest-slate)}.about-section{max-width:900px}.about-content{display:grid;grid-template-columns:3fr 2fr;gap:50px}.about-image img{width:100%;max-width:300px;border-radius:4px;box-shadow:0 10px 30px -15px #020c1bb3;transition:all .25s cubic-bezier(.645,.045,.355,1)}.about-image img:hover{transform:translateY(-7px)}.about-text{color:var(--slate)}.about-text p{margin:0 0 15px;line-height:1.5}.green-link{color:var(--green);display:inline-block;position:relative}.green-link:hover,.green-link:focus{color:var(--green)}.skills-list{display:grid;grid-template-columns:repeat(2,minmax(140px,200px));gap:0 10px;padding:0;margin:20px 0 0;overflow:hidden;list-style:none}.skills-list li{position:relative;margin-bottom:10px;padding-left:20px;font-family:var(--font-mono);font-size:13px}.skills-list li:before{content:"▹";position:absolute;left:0;color:var(--green);font-size:14px;line-height:12px}.about-image-container{position:relative;max-width:300px}.about-image-wrapper{display:block;position:relative;width:100%;border-radius:4px;background-color:var(--green);transition:var(--transition)}.about-image-wrapper:before{top:0;left:0;background-color:var(--navy);mix-blend-mode:screen}.about-image-wrapper:after{border:2px solid var(--green);top:20px;left:20px;z-index:-1}.about-image-wrapper:before,.about-image-wrapper:after{content:"";display:block;position:absolute;width:100%;height:100%;border-radius:4px;transition:var(--transition)}.about-image{position:relative;border-radius:4px;mix-blend-mode:multiply;filter:grayscale(100%) contrast(1);transition:var(--transition)}.placeholder-image{max-width:500px;height:300px;background-color:var(--lightest-slate);border-radius:4px;position:relative}.about-image-container:hover .about-image-wrapper:after{top:15px;left:15px}@media(max-width:768px){.about-content{display:block}.about-image-container{margin:50px auto 0;width:70%}}.job-position{margin-bottom:30px}.job-position:last-child{margin-bottom:0}.job-divider{height:1px;background-color:var(--lightest-navy);margin:30px 0;width:100%;max-width:500px}.experience-section .section-title{font-size:clamp(40px,5vw,60px);margin:0 0 40px;color:var(--lightest-slate)}.experience-section{max-width:700px}.experiences-container{display:flex;min-height:340px}.tab-list{position:relative;z-index:3;width:max-content;padding:0;margin:0;list-style:none}.tab-button{display:flex;align-items:center;width:100%;height:42px;padding:0 20px 2px;border-left:2px solid var(--lightest-navy);background-color:transparent;color:var(--slate);font-family:var(--font-mono);font-size:13px;text-align:left;white-space:nowrap;cursor:pointer;transition:var(--transition)}.tab-button:hover,.tab-button:focus{background-color:var(--light-navy);color:var(--green);outline:none}.tab-button.active{color:var(--green);border-left:2px solid var(--green)}.highlight{position:absolute;top:0;left:0;z-index:10;width:2px;height:42px;border-radius:4px;background:var(--green);transform:translateY(0);transition:transform .25s cubic-bezier(.645,.045,.355,1)}.tab-panels{position:relative;width:100%;margin-left:20px}.tab-panel{width:100%;height:auto;padding:10px 5px;display:none}.tab-panel.active{display:block}.job-title{color:var(--lightest-slate);font-size:22px;font-weight:500}.job-company{color:var(--green)}.inline-link:hover,.inline-link:focus{color:var(--green)}.job-range{margin-bottom:25px;color:var(--light-slate);font-family:var(--font-mono);font-size:13px}.job-duties{padding:0;margin:0;list-style:none;font-size:18px}.job-duties li{position:relative;padding-left:30px;margin-bottom:10px}.job-duties li:before{content:"▹";position:absolute;left:0;color:var(--green);font-size:18px;line-height:18px}@media(max-width:768px){.experiences-container{display:block}.tab-list{display:flex;overflow-x:auto;width:calc(100% + 50px);margin-left:-25px;margin-bottom:30px}.tab-button{display:flex;justify-content:center;align-items:center;min-width:120px;padding:0 15px;border-left:0;border-bottom:2px solid var(--lightest-navy);text-align:center}.tab-button.active{border-bottom:2px solid var(--green);border-left:0}.highlight{top:auto;bottom:0;width:100%;max-width:120px;height:2px;transform:translate(0)}.tab-panels{margin-left:0}}@media(max-width:480px){.job-title,.job-company{display:block}.job-company{margin-top:5px}}.inline-link{display:inline-block;text-decoration:none;text-decoration-skip-ink:auto;position:relative;transition:var(--transition);color:var(--green)}.inline-link:hover,.inline-link:focus{color:var(--green);outline:0}.inline-link:after{content:"";display:block;width:0;height:1px;position:relative;bottom:.25em;background-color:var(--green);transition:var(--transition);opacity:.5}.inline-link:hover:after,.inline-link:focus:after{width:100%}.projects-section .section-title{font-size:clamp(40px,5vw,60px);margin:0 0 40px;color:var(--lightest-slate)}.projects-section{max-width:1000px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;position:relative;margin-top:50px}.project-card{position:relative;cursor:default;transition:var(--transition)}.project-card:hover{transform:translateY(-7px)}.project-content{position:relative;display:flex;flex-direction:column;height:100%;padding:2rem 1.75rem;border-radius:4px;background-color:var(--light-navy);transition:var(--transition)}.project-content:hover{box-shadow:0 10px 30px -15px #020c1bb3}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.folder-icon{color:var(--green);width:40px;height:40px}.project-links{display:flex;align-items:center;margin-right:-10px;color:var(--light-slate)}.project-links a{display:flex;justify-content:center;align-items:center;padding:5px 7px}.github-icon,.external-icon{width:20px;height:20px;margin-left:10px}.project-title{margin:0 0 10px;color:var(--lightest-slate);font-size:22px}.project-description{color:var(--light-slate);font-size:17px;line-height:1.5}.project-tech-list{display:flex;flex-wrap:wrap;position:relative;z-index:2;margin:25px 0 10px;padding:0;list-style:none}.project-tech-list li{margin:0 15px 5px 0;color:var(--light-slate);font-family:var(--font-mono);font-size:13px;white-space:nowrap}@media(max-width:1080px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media(max-width:768px){.projects-grid{grid-template-columns:1fr;gap:25px}}.steps-list{counter-reset:step-counter;list-style-type:none;padding:0;margin:20px 0}.steps-list li{position:relative;padding-left:30px;margin-bottom:15px;color:var(--light-slate);line-height:1.5}.steps-list li:before{counter-increment:step-counter;content:"0" counter(step-counter) ".";position:absolute;left:0;top:0;color:var(--green);font-family:var(--font-mono);font-size:14px;font-weight:400}.steps-list li strong{color:var(--lightest-slate);font-weight:600}.how-section .section-title{font-size:clamp(40px,5vw,60px);margin:0 0 40px;color:var(--lightest-slate)}.how-section{max-width:900px}.how-section-info{margin:30px 0;color:var(--slate)}.ip-address-list{list-style-type:disc;padding-left:20px;margin:10px 0;color:var(--light-slate);font-family:var(--font-mono);font-size:14px}.how-content{display:grid;grid-template-columns:3fr 2fr;gap:50px}.how-text{color:var(--slate)}.how-text p{margin:0 0 15px;line-height:1.5}.tech-list{display:grid;grid-template-columns:repeat(2,minmax(140px,200px));gap:0 10px;padding:0;margin:20px 0 0;overflow:hidden;list-style:none}.tech-list li{position:relative;margin-bottom:10px;padding-left:20px;font-family:var(--font-mono);font-size:13px}.tech-list li:before{content:"▹";position:absolute;left:0;color:var(--green);font-size:14px;line-height:12px}.how-code-container{position:relative;max-width:100%}.code-snippet{border-radius:5px;overflow:hidden;background-color:var(--light-navy);font-size:13px;box-shadow:0 10px 30px -15px #020c1bb3}.code-header{display:flex;align-items:center;padding:8px 10px;background-color:var(--lightest-navy);font-family:var(--font-mono);font-size:12px}.file-name{color:var(--lightest-slate)}.code-block{margin:0;padding:20px;overflow-x:auto;font-family:var(--font-mono);line-height:1.5;color:var(--light-slate)}code{font-family:var(--font-mono)}@media(max-width:768px){.how-content{display:block}.how-code-container{margin:50px auto 0}.code-block{padding:15px}}.contact-section{max-width:600px;margin:0 auto;text-align:center;padding-bottom:100px}.contact-section .numbered-heading{display:block;margin-bottom:5px;font-family:var(--font-mono);font-size:16px;font-weight:400;color:var(--green)}.contact-section .numbered-heading:before{content:"05. ";position:relative;margin-right:5px;counter-increment:none;color:var(--green)}.contact-section .numbered-heading:after{display:none}.contact-title{font-size:clamp(40px,5vw,60px);margin:0 0 20px}.contact-description{margin-bottom:50px;color:var(--slate);line-height:1.6}.contact-button{color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:4px;padding:1.25rem 1.75rem;font-size:14px;font-family:var(--font-mono);line-height:1;text-decoration:none;transition:var(--transition)}.contact-button:hover,.contact-button:focus{background-color:#64ffda1a;outline:none}.social-container{width:40px;position:fixed;bottom:0;left:40px;right:auto;z-index:10}.social-list{display:flex;flex-direction:column;align-items:center;margin:0;padding:0;list-style:none}.social-item{margin-bottom:10px}.social-list:after{content:"";display:block;width:1px;height:90px;margin:0 auto;background-color:var(--light-slate)}.social-icon{width:20px;height:20px;color:var(--light-slate);transition:var(--transition)}.social-icon:hover,.social-icon:focus{color:var(--green);transform:translateY(-3px)}@media(max-width:1080px){.social-container{left:20px;right:auto}}@media(max-width:768px){.social-container{display:none}}:root{--navy: #0a192f;--light-navy: #112240;--lightest-navy: #233554;--slate: #8892b0;--light-slate: #a8b2d1;--lightest-slate: #ccd6f6;--white: #e6f1ff;--green: #64ffda;--font-sans: "Calibre", "Inter", "San Francisco", "SF Pro Text", -apple-system, system-ui, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--transition: all .25s cubic-bezier(.645, .045, .355, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{margin:0;width:100%;min-height:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased;background-color:var(--navy);color:var(--slate);font-family:var(--font-sans);font-size:20px;line-height:1.3}.app{display:flex;flex-direction:column;min-height:100vh}section{margin:0 auto;padding:100px 0;max-width:1000px}.content{padding:0 150px}.numbered-heading{display:flex;align-items:center;position:relative;margin:10px 0 40px;width:100%;font-size:clamp(26px,5vw,32px);white-space:nowrap;counter-increment:section;color:var(--lightest-slate);font-weight:600}.numbered-heading:before{position:relative;bottom:4px;content:"0" counter(section) ".";margin-right:10px;color:var(--green);font-family:var(--font-mono);font-size:clamp(16px,3vw,20px);font-weight:400}.numbered-heading:after{display:none}.overline{color:var(--green);font-family:var(--font-mono);font-size:16px;font-weight:400}.green-text{color:var(--green)}.loader{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--navy);display:flex;justify-content:center;align-items:center;z-index:99}.loader-content{color:var(--green);font-family:var(--font-mono);font-size:2rem;border:2px solid var(--green);padding:1.5rem}@media(max-width:1080px){.content{padding:0 100px}}@media(max-width:768px){.content{padding:0 50px}section{padding:80px 0}.numbered-heading:after{width:200px}}@media(max-width:480px){.content{padding:0 25px}section{padding:60px 0}}:root{--navy: #0a192f;--light-navy: #112240;--lightest-navy: #233554;--slate: #8892b0;--light-slate: #a8b2d1;--lightest-slate: #ccd6f6;--white: #e6f1ff;--green: #64ffda;--font-sans: "Inter", "San Francisco", "SF Pro Text", -apple-system, system-ui, sans-serif;--font-mono: "Roboto Mono", "SF Mono", "Fira Code", "Fira Mono", monospace;--transition: all .25s cubic-bezier(.645, .045, .355, 1);--ham-before: top .1s ease-in .25s, opacity .1s ease-in;--ham-before-active: top .1s ease-out, opacity .1s ease-out .12s;--ham-after: bottom .1s ease-in .25s, transform .22s cubic-bezier(.55, .055, .675, .19);--ham-after-active: bottom .1s ease-out, transform .22s cubic-bezier(.215, .61, .355, 1) .12s}body{margin:0;width:100%;min-height:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased;background-color:var(--navy);color:var(--slate);font-family:var(--font-sans);font-size:20px;line-height:1.3;counter-reset:section 0}::selection{background-color:var(--lightest-navy);color:var(--lightest-slate)}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0 0 10px;font-weight:600;color:var(--lightest-slate);line-height:1.1}p{margin:0 0 15px}img,svg{width:100%;max-width:100%}img[alt=""],img:not([alt]){filter:blur(5px)}a{display:inline-block;text-decoration:none;text-decoration-skip-ink:auto;color:inherit;position:relative;transition:var(--transition)}a:hover,a:focus{color:var(--green)}button{cursor:pointer;border:0;border-radius:0}input,textarea{border-radius:0;outline:0}input:focus,textarea:focus{outline:0}input[type=text],input[type=email],input[type=search],input[type=password]{-webkit-appearance:none;-moz-appearance:none}p a{display:inline-block;position:relative;color:var(--green);transition:var(--transition)}p a:hover,p a:focus{color:var(--green)}p a:after{content:"";display:block;width:0;height:1px;position:relative;bottom:.25em;background-color:var(--green);transition:var(--transition);opacity:.5}p a:hover:after,p a:focus:after{width:100%}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--navy)}::-webkit-scrollbar-thumb{background-color:var(--lightest-navy);border:3px solid var(--navy);border-radius:10px}@media(max-width:1080px){body{font-size:18px}}@media(max-width:768px){body{font-size:16px}}
