:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;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:hover{border-color:#646cff}button:focus,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}}:root{--dark-navy: #020c1b;--navy: #0a192f;--light-navy: #112240;--lightest-navy: #233554;--navy-shadow: rgba(2, 12, 27, .7);--dark-slate: #495670;--slate: #8892b0;--light-slate: #a8b2d1;--lightest-slate: #ccd6f6;--white: #e6f1ff;--green: #64ffda;--green-tint: rgba(100, 255, 218, .1);--bg-primary: #020c1b;--bg-secondary: #112240;--text-primary: #FFFFE3;--text-secondary: #CBCBCB;--accent: #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;--fz-xxs: 12px;--fz-xs: 13px;--fz-sm: 14px;--fz-md: 16px;--fz-lg: 18px;--fz-xl: 20px;--fz-xxl: 22px;--fz-heading: 32px;--border-radius: 4px;--nav-height: 100px;--nav-scroll-height: 70px;--tab-height: 42px;--tab-width: 160px;--spacing-unit: clamp(1rem, 2vw, 1.5rem);--padding-inline: clamp(25px, 8vw, 150px);--padding-block-lg: clamp(125px, 15vh, 200px);--padding-block-md: clamp(60px, 10vh, 100px);--section-gap: clamp(60px, 10vh, 100px);--header-padding: clamp(25px, 4vw, 50px);--easing: cubic-bezier(.645, .045, .355, 1);--transition: all .25s cubic-bezier(.645, .045, .355, 1)}.light-mode{--bg-primary: #FFFFE3;--bg-secondary: #ffffff;--text-primary: #4A4A4A;--text-secondary: #4A4A4A;--accent: #0a192f;--lightest-slate: #4A4A4A;--slate: #4A4A4A;--light-slate: #4A4A4A;--navy: #FFFFE3;--light-navy: #e6e6e6;--green: #4A4A4A}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--dark-slate) var(--navy)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--navy)}::-webkit-scrollbar-thumb{background-color:var(--dark-slate);border:3px solid var(--navy);border-radius:10px}::selection{background-color:var(--lightest-navy);color:var(--lightest-slate)}body{margin:0;width:100%;min-height:100vh;overflow-x:hidden;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background-color:var(--bg-primary);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--fz-xl);line-height:1.3}body.blur{overflow:hidden}body.blur #content>*{filter:blur(5px) brightness(.7);transition:var(--transition);pointer-events:none;-webkit-user-select:none;user-select:none}h1,h2,h3,h4,h5,h6{margin:0 0 10px;font-weight:600;color:var(--lightest-slate);line-height:1.1}.big-heading{margin:0;font-size:clamp(40px,8vw,80px)}.medium-heading{margin:0;font-size:clamp(40px,8vw,60px)}.numbered-heading{display:flex;align-items:center;position:relative;margin:10px 0 40px;width:100%;font-size:clamp(26px,5vw,var(--fz-heading));white-space:nowrap;counter-increment:section}.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(var(--fz-md),3vw,var(--fz-xl));font-weight:400}.numbered-heading:after{content:"";display:block;position:relative;top:-5px;width:300px;height:1px;margin-left:20px;background-color:var(--lightest-navy)}p{margin:0 0 15px}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)}.skip-to-content{position:absolute;top:auto;left:-999px;width:1px;height:1px;overflow:hidden;z-index:-99;padding:1.5rem;background-color:var(--green);color:var(--navy);font-family:var(--font-mono);font-size:var(--fz-md);border-radius:var(--border-radius)}.skip-to-content:focus{box-shadow:0 10px 30px -15px var(--navy-shadow);top:0;left:0;width:auto;height:auto;overflow:auto;z-index:99}header{position:fixed;top:0;z-index:11;padding:0 var(--header-padding);width:100%;height:var(--nav-height);background-color:#0a192fd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:var(--transition)}header.scrolled{height:var(--nav-scroll-height);box-shadow:0 10px 30px -10px var(--navy-shadow)}header.hidden{transform:translateY(calc(var(--nav-scroll-height) * -1))}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;height:100%}.light-mode nav{color:var(--white)}.light-mode .nav-links li a:before{color:var(--white)}.light-mode .logo a{color:var(--white)}.light-mode .resume-button{color:var(--white);border-color:var(--white)}.theme-toggle{background:none;border:none;cursor:pointer;color:var(--green);margin-right:20px;padding:5px;display:flex;align-items:center;transition:var(--transition)}.light-mode .theme-toggle{color:var(--white)}.theme-toggle.mobile{margin-right:0;margin-top:20px;padding:10px;justify-content:center;width:100%}.logo a{color:var(--green);display:flex;align-items:center;transition:var(--transition)}.logo a:hover{transform:translate(-4px,-4px)}.logo svg{fill:none;-webkit-user-select:none;user-select:none}.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 li{margin:0 5px;position:relative;counter-increment:item 1;font-size:var(--fz-xs)}.nav-links a{padding:10px}.nav-links li a:before{content:"0" counter(item) ".";margin-right:5px;color:var(--green);font-size:var(--fz-xxs);text-align:right}.resume-button-container{margin-left:15px}.resume-button{color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:var(--border-radius);padding:.75rem 1rem;font-family:var(--font-mono);font-size:var(--fz-xs);line-height:1;text-decoration:none;cursor:pointer;transition:var(--transition)}.resume-button:hover{background-color:var(--green-tint);transform:translateY(-2px)}.menu-button{display:none}.hamburger{display:flex;flex-direction:column;justify-content:space-around;width:30px;height:24px;cursor:pointer}.hamburger span{width:100%;height:2px;background-color:var(--green);transition:var(--transition)}.menu-button.open .hamburger span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-button.open .hamburger span:nth-child(2){opacity:0}.menu-button.open .hamburger span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.mobile-menu{position:fixed;top:0;right:0;bottom:0;width:min(75vw,400px);height:100vh;background-color:var(--light-navy);box-shadow:-10px 0 30px -15px var(--navy-shadow);z-index:10;transform:translate(100%);transition:transform .3s var(--easing);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:50px}.mobile-menu.open{transform:translate(0)}.mobile-menu nav{display:flex;flex-direction:column;align-items:center;width:100%}.mobile-menu ol{list-style:none;padding:0;margin:0;width:100%}.mobile-menu li{margin:0;counter-increment:item 1}.mobile-menu a{display:block;padding:1.5rem;text-align:center;font-size:var(--fz-lg)}.mobile-menu li a:before{content:"0" counter(item) ".";display:block;margin-bottom:5px;color:var(--green);font-size:var(--fz-sm)}.mobile-menu .resume-button{margin-top:2rem;padding:1rem 2rem}#content{min-height:100vh;display:grid;grid-template-rows:1fr auto;grid-template-columns:100%}main{margin:0 auto;width:100%;max-width:1600px;min-height:100vh;padding:var(--padding-block-lg) var(--padding-inline);counter-reset:section}section{margin:0 auto;padding:var(--section-gap) 0;max-width:1000px;width:100%}.hero-section{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:100vh;height:100vh;padding:0}.intro-greeting{margin:0 0 30px 4px;color:var(--green);font-family:var(--font-mono);font-size:clamp(var(--fz-sm),5vw,var(--fz-md));font-weight:400}.subtitle-heading{margin-top:5px;color:var(--slate);line-height:.9}.hero-description{margin:20px 0 0;max-width:540px}.cta-button{margin-top:50px;color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:var(--border-radius);padding:1.25rem 1.75rem;font-family:var(--font-mono);font-size:var(--fz-sm);line-height:1;text-decoration:none;cursor:pointer;transition:var(--transition)}.cta-button:hover{background-color:var(--green-tint);transform:translateY(-2px);box-shadow:0 10px 30px -15px var(--navy-shadow)}.about-section{max-width:900px}.about-content{display:grid;grid-template-columns:3fr 2fr;grid-gap:50px}.about-text{font-size:var(--fz-lg)}.about-text p{margin-bottom:15px}.skills-list{display:grid;grid-template-columns:repeat(2,minmax(140px,200px));grid-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:var(--fz-xs)}.skills-list li:before{content:"▹";position:absolute;left:0;color:var(--green);font-size:var(--fz-sm);line-height:12px}.about-image{position:relative;max-width:300px}.image-wrapper{display:block;position:relative;width:100%;border-radius:var(--border-radius);background-color:var(--green);transition:var(--transition)}.image-wrapper:hover{transform:translate(-4px,-4px)}.image-wrapper:hover:after{transform:translate(8px,8px)}.image-wrapper:before{content:"";position:absolute;width:100%;height:100%;top:0;left:0;border-radius:var(--border-radius);background-color:var(--navy);mix-blend-mode:screen;transition:var(--transition)}.image-wrapper:after{content:"";display:block;position:absolute;width:100%;height:100%;border:2px solid var(--green);top:14px;left:14px;z-index:-1;border-radius:var(--border-radius);transition:var(--transition)}.image-placeholder{position:relative;border-radius:var(--border-radius);overflow:hidden}.image-placeholder svg{display:block;width:100%;height:auto}.experience-section{max-width:700px}.jobs-container{display:flex;gap:20px}.job-tabs{display:flex;flex-direction:column;position:relative;z-index:3;width:var(--tab-width);padding:0;margin:0;list-style:none;gap:10px}.job-tab{display:flex;align-items:center;width:100%;min-height:var(--tab-height);padding:10px 15px;border-left:2px solid var(--lightest-navy);background-color:transparent;color:var(--slate);font-family:var(--font-mono);font-size:var(--fz-xs);text-align:left;white-space:normal;cursor:pointer;transition:var(--transition)}.job-tab:hover,.job-tab:focus{background-color:var(--light-navy);color:var(--green)}.job-tab.active{color:var(--green);border-left-color:var(--green)}.job-panels{position:relative;width:100%;margin-left:20px}.job-panel{display:none;width:100%;height:auto;padding:10px 5px}.job-panel.active{display:block}.job-panel h3{margin-bottom:2px;font-size:var(--fz-xxl);font-weight:500;line-height:1.3}.job-panel .company{color:var(--green)}.job-panel .company a{display:inline}.job-range{margin-bottom:25px;color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xs)}.job-description ul{padding:0;margin:0;list-style:none;font-size:var(--fz-lg)}.job-description li{position:relative;padding-left:30px;margin-bottom:10px}.job-description li:before{content:"▹";position:absolute;left:0;color:var(--green)}.projects-section{max-width:1000px}.featured-project{display:grid;gap:10px;grid-template-columns:repeat(12,1fr);align-items:center;margin-bottom:100px}.featured-project:last-of-type{margin-bottom:0}.project-content{position:relative;grid-area:1 / 1 / -1 / 7}.project-image{grid-area:1 / 6 / -1 / -1;position:relative;z-index:1}.featured-project.reverse .project-content{grid-column:7 / -1;text-align:right}.featured-project.reverse .project-image{grid-column:1 / 8}.project-overline{margin:10px 0;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-xs);font-weight:400}.project-title{color:var(--lightest-slate);font-size:clamp(24px,5vw,28px);margin:0 0 20px}.project-title a{display:inline;color:var(--lightest-slate)}.project-description{box-shadow:0 10px 30px -15px var(--navy-shadow);position:relative;z-index:2;padding:2rem;border-radius:var(--border-radius);background-color:var(--light-navy);color:var(--light-slate);font-size:var(--fz-lg);transition:var(--transition)}.project-description:hover{box-shadow:0 20px 30px -15px var(--navy-shadow)}.featured-project.reverse .project-description{text-align:left}.project-tech-list{display:flex;flex-wrap:wrap;position:relative;z-index:2;margin:25px 0 10px;padding:0;list-style:none}.featured-project.reverse .project-tech-list{justify-content:flex-end}.project-tech-list li{margin:0 20px 5px 0;color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xs);white-space:nowrap}.featured-project.reverse .project-tech-list li{margin:0 0 5px 20px}.project-links{display:flex;align-items:center;position:relative;margin-top:10px;margin-left:-10px;color:var(--lightest-slate)}.featured-project.reverse .project-links{justify-content:flex-end;margin-left:0;margin-right:-10px}.project-links a{display:flex;justify-content:center;align-items:center;padding:10px}.project-links a svg{width:20px;height:20px}.project-image a{width:100%;height:100%;background-color:var(--green);border-radius:var(--border-radius);vertical-align:middle}.project-image .image-placeholder{position:relative;border-radius:var(--border-radius);mix-blend-mode:multiply;filter:grayscale(100%) contrast(1);transition:var(--transition)}.project-image a:hover .image-placeholder{filter:none;mix-blend-mode:normal}.other-projects{margin-top:80px}.other-projects-heading{margin:10px 0 40px;text-align:center;color:var(--lightest-slate);font-size:clamp(24px,5vw,var(--fz-heading))}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;position:relative;margin-top:50px}.project-card{display:flex;flex-direction:column;align-items:flex-start;position:relative;height:100%;padding:2rem 1.75rem;border-radius:var(--border-radius);background-color:var(--light-navy);transition:var(--transition)}.project-card:hover{transform:translateY(-7px)}.project-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.folder-icon{color:var(--green)}.folder-icon svg{width:40px;height:40px;fill:var(--green)}.project-card-links{display:flex;align-items:center;margin-right:-10px;color:var(--light-slate)}.project-card-links a{display:flex;justify-content:center;align-items:center;padding:5px 7px}.project-card-links a svg{width:20px;height:20px}.project-card-title{margin:0 0 10px;color:var(--lightest-slate);font-size:var(--fz-xxl)}.project-card-title a{display:inline;color:var(--lightest-slate)}.project-card-description{color:var(--light-slate);font-size:17px;flex-grow:1}.project-card-tech{display:flex;align-items:flex-end;flex-wrap:wrap;padding:0;margin:20px 0 0;list-style:none}.project-card-tech li{font-family:var(--font-mono);font-size:var(--fz-xxs);line-height:1.75;margin-right:15px;color:var(--slate)}.contact-section{max-width:600px;margin:0 auto var(--padding-block-lg);text-align:center}.contact-section .numbered-heading{justify-content:center}.contact-section .numbered-heading:after{display:none}.contact-section .overline{display:block;margin-bottom:20px;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-md);font-weight:400}.contact-section .title{font-size:clamp(40px,5vw,60px);color:var(--lightest-slate)}.contact-section p{margin-bottom:50px}.email-link{color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:var(--border-radius);padding:1.25rem 1.75rem;font-family:var(--font-mono);font-size:var(--fz-sm);line-height:1;text-decoration:none;cursor:pointer;transition:var(--transition);margin-top:50px}.email-link:hover{background-color:var(--green-tint);transform:translateY(-2px);box-shadow:0 10px 30px -15px var(--navy-shadow)}footer{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:auto;min-height:70px;padding:15px var(--padding-inline);margin:0 auto;width:100%;max-width:1600px}.social-links{display:none}.social-links ul{display:flex;justify-content:center;align-items:center;padding:0;margin:0;list-style:none}.social-links li{margin:0 10px}.social-links a{padding:10px}.social-links a svg{width:20px;height:20px}.footer-text{color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xxs);line-height:1;text-align:center;width:100%}.footer-text p{margin:5px 0;text-align:center}@media(max-width:1080px){.numbered-heading:after{width:200px}}@media(max-width:768px){.nav-links{display:none}.menu-button{display:block;z-index:10}.numbered-heading:after{width:100%}.about-content{display:block}.about-image{margin:50px auto 0;width:70%}.jobs-container{flex-direction:column}.job-tabs{flex-direction:row;width:100%;overflow-x:auto;margin-bottom:30px}.job-tab{border-left:0;border-bottom:2px solid var(--lightest-navy);min-width:120px}.job-tab.active{border-left:0;border-bottom-color:var(--green)}.job-panels{margin-left:0}.featured-project,.featured-project.reverse{display:block}.project-content{grid-column:1 / -1;padding:40px 40px 30px;text-align:left!important;z-index:5}.project-image{grid-column:1 / -1;height:100%;opacity:.25}.project-description{padding:20px 0;background-color:transparent;box-shadow:none}.project-description:hover{box-shadow:none}.project-tech-list,.featured-project.reverse .project-tech-list{justify-content:flex-start}.project-tech-list li{margin:0 10px 5px 0}.project-links,.featured-project.reverse .project-links{justify-content:flex-start;margin-left:-10px;margin-right:0}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.social-links{display:block;margin-bottom:20px}}@media(max-width:600px){.numbered-heading:before{margin-bottom:-3px;margin-right:5px}.numbered-heading:after{margin-left:10px}}@media(max-width:480px){body{font-size:var(--fz-lg)}.intro-greeting{margin:0 0 20px 2px}.projects-grid{grid-template-columns:1fr}}:focus:not(:focus-visible){outline:none;outline-offset:0px}:focus-visible{outline:2px dashed var(--green);outline-offset:3px}.page-header-section{padding:0;margin-bottom:var(--padding-block-md)}.page-subtitle{margin-top:20px;color:var(--light-slate);font-size:var(--fz-xl);max-width:600px}.full-experience-section{max-width:900px}.development-section{max-width:1000px}.development-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-bottom:var(--section-gap)}.development-card{padding:2rem;background-color:var(--light-navy);border-radius:var(--border-radius);transition:var(--transition)}.development-card:hover{transform:translateY(-5px);box-shadow:0 20px 30px -15px var(--navy-shadow)}.development-card h3{color:var(--lightest-slate);font-size:var(--fz-xxl);margin-bottom:10px}.development-meta{color:var(--green);font-family:var(--font-mono);font-size:var(--fz-xs);margin-bottom:15px}.development-description{color:var(--light-slate);font-size:var(--fz-md);line-height:1.6}.view-all-link{display:inline-flex;align-items:center;margin-top:30px;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-sm);text-decoration:none;transition:var(--transition)}.view-all-link:hover{transform:translate(5px)}.view-all-link:after{content:" →";margin-left:5px;transition:var(--transition)}.view-all-link:hover:after{margin-left:10px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.social-sidebar{width:40px;position:fixed;bottom:0;left:40px;right:auto;z-index:10;color:var(--light-slate)}.social-sidebar-list{display:flex;flex-direction:column;align-items:center;margin:0;padding:0;list-style:none}.social-sidebar-list:after{content:"";display:block;width:1px;height:90px;margin:0 auto;background-color:var(--light-slate)}.social-sidebar-list li{margin-bottom:20px}.social-sidebar-list li:last-of-type{margin-bottom:20px}.social-sidebar-list a{padding:10px;display:inline-block;transition:var(--transition)}.social-sidebar-list a:hover{transform:translateY(-3px);color:var(--green)}.social-sidebar-list a svg{width:20px;height:20px}@media(max-width:768px){.social-sidebar{display:none}}
