:root{--navy: #0a192f;--light-navy: #112240;--lightest-navy: #233554;--navy-shadow: rgba(2, 12, 27, .7);--slate: #8892b0;--light-slate: #a8b2d8;--lightest-slate: #ccd6f6;--white: #e6f1ff;--green: #64ffda;--green-tint: rgba(100, 255, 218, .1);--font-sans: "Inter", "San Francisco", "SF Pro Text", -apple-system, system-ui, sans-serif;--font-mono: "Fira Code", "Fira Mono", "Roboto Mono", monospace;--fz-xxs: 11px;--fz-xs: 12px;--fz-sm: 13px;--fz-md: 15px;--fz-lg: 18px;--fz-xl: 20px;--fz-xxl: 22px;--fz-heading: 32px;--border-radius: 4px;--nav-height: 70px;--nav-scroll-height: 60px;--easing: cubic-bezier(.645, .045, .355, 1);--transition: all .25s cubic-bezier(.645, .045, .355, 1);--hamburger-width: 30px;--ham-before: top .1s ease-in .25s, opacity .1s ease-in;--ham-before-active: top .1s ease-out, opacity .1s ease-out .12s;--ham-bottom: bottom .1s ease-in .25s, transform .22s cubic-bezier(.55, .055, .675, .19);--ham-bottom-active: bottom .1s ease-out, transform .22s cubic-bezier(.215, .61, .355, 1) .12s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{margin:0;width:100%;min-height:100%;overflow-x:hidden;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background-color:var(--navy);color:var(--slate);font-family:var(--font-sans);font-size:var(--fz-xl);line-height:1.3}body.hidden{overflow:hidden}body.blur main>*{filter:blur(5px) brightness(.7);pointer-events:none;-webkit-user-select:none;user-select:none}html{scrollbar-width:thin;scrollbar-color:var(--lightest-navy) var(--navy)}::-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}h1,h2,h3,h4,h5,h6{margin:0 0 10px;font-weight:600;color:var(--lightest-slate);line-height:1.1}a{display:inline-block;text-decoration:none;text-decoration-skip-ink:auto;color:inherit;cursor:pointer;transition:var(--transition)}a:hover,a:focus{color:var(--green);outline:0}ul,ol{list-style:none}img,svg{width:100%;max-width:100%;vertical-align:middle}button{cursor:pointer;border:0;border-radius:0;background:transparent;font-family:var(--font-mono)}input,textarea{border-radius:0;outline:0}input:focus,textarea:focus{outline:0}input:focus::placeholder,input:active::placeholder,textarea:focus::placeholder,textarea:active::placeholder{opacity:.5}p{margin:0 0 15px}p:last-child,p:last-of-type{margin:0}p>a{color:var(--green)}p>code{background-color:var(--light-navy);color:var(--white);font-size:var(--fz-sm);border-radius:var(--border-radius);padding:.3em .5em}.skip-to-content{position:absolute;top:auto;left:-999px;width:1px;height:1px;overflow:hidden;z-index:-99}.skip-to-content:focus,.skip-to-content:active{background-color:var(--green);color:var(--navy);top:0;left:0;width:auto;height:auto;overflow:auto;z-index:99;font-size:var(--fz-sm);font-family:var(--font-mono);font-weight:700;line-height:normal;padding:18px 23px;border-radius:0 0 3px;text-decoration:none}.section{margin:0 auto;padding:100px 0;max-width:1000px}.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;color:var(--lightest-slate)}.numbered-heading:before{position:relative;bottom:4px;counter-increment:section;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)}main{counter-reset:section;padding:0 150px}.btn{display:inline-block;padding:1.25rem 1.75rem;border:1px solid var(--green);border-radius:var(--border-radius);background-color:transparent;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-xs);font-weight:600;letter-spacing:.1em;text-decoration:none;cursor:pointer;transition:var(--transition);line-height:1;text-transform:uppercase}.btn:hover,.btn:focus,.btn:active{background-color:var(--green-tint);color:var(--green);outline:none}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--easing),transform .6s var(--easing)}.reveal.revealed{opacity:1;transform:translateY(0)}.loader{display:flex;justify-content:center;align-items:center;position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--navy);z-index:9999;transition:opacity .5s ease,visibility .5s ease}.loader.loaded{opacity:0;visibility:hidden}.loader-logo{width:60px;height:60px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}}header{display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;z-index:11;padding:0 50px;width:100%;height:var(--nav-height);background-color:#0a192fd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);filter:none!important;pointer-events:auto!important;-webkit-user-select:auto!important;user-select:auto!important;transition:var(--transition)}header.scrolled{height:var(--nav-scroll-height);box-shadow:0 10px 30px -10px var(--navy-shadow)}header.hidden{box-shadow:0 10px 30px -10px var(--navy-shadow);transform:translateY(calc(var(--nav-scroll-height) * -1))}.nav-logo{display:flex;justify-content:center;align-items:center;width:42px;height:42px;border:1px solid var(--green);border-radius:3px;color:var(--green);font-family:var(--font-mono);font-size:20px;font-weight:600;text-decoration:none;transition:var(--transition)}.nav-logo:hover{background-color:var(--green-tint);color:var(--green)}nav{display:flex;align-items:center}.nav-links{display:flex;align-items:center;gap:5px;list-style:none;padding:0;margin:0}.nav-links li{counter-increment:nav-counter;font-family:var(--font-mono);font-size:var(--fz-xs)}.nav-links li a{padding:10px;color:var(--lightest-slate)}.nav-links li a:before{content:"0" counter(nav-counter) ".";margin-right:5px;color:var(--green);font-size:var(--fz-xxs)}.nav-links li a:hover{color:var(--green)}nav{counter-reset:nav-counter}.nav-resume-btn{margin-left:15px;padding:10px 16px;font-size:var(--fz-xs)}.hamburger-btn{display:none;position:relative;z-index:12;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}.hamburger-inner,.hamburger-inner:before,.hamburger-inner:after{position:absolute;width:var(--hamburger-width);height:2px;border-radius:var(--border-radius);background-color:var(--green);transition-timing-function:ease;transition-duration:.15s;transition-property:transform}.hamburger-inner{display:block;margin-top:-1px;top:auto;bottom:0;transition-duration:.13s;transition-delay:.13s;transition-timing-function:cubic-bezier(.55,.055,.675,.19)}.hamburger-inner:before{content:"";top:-10px;display:block;transition:var(--ham-before)}.hamburger-inner:after{content:"";bottom:-10px;display:block;transition:var(--ham-bottom)}.hamburger-box{position:relative;display:inline-block;width:var(--hamburger-width);height:24px}.hamburger-btn.open .hamburger-inner{transform:translate3d(0,-10px,0) rotate(-45deg);transition-delay:.22s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.hamburger-btn.open .hamburger-inner:before{top:0;opacity:0;transition:var(--ham-before-active)}.hamburger-btn.open .hamburger-inner:after{bottom:0;transform:rotate(-90deg);transition:var(--ham-bottom-active)}.mobile-menu{display:none;justify-content:center;align-items:center;position:fixed;top:0;bottom:0;right:0;padding:50px 10px;width:min(75vw,400px);height:100vh;outline:0;background-color:var(--light-navy);box-shadow:-10px 0 30px -15px var(--navy-shadow);z-index:11;transform:translate(100vw);visibility:hidden;transition:var(--transition);counter-reset:nav-counter}.mobile-menu.open{transform:translate(0);visibility:visible}.mobile-menu nav{display:flex;justify-content:space-between;align-items:center;width:100%;flex-direction:column;color:var(--lightest-slate);font-family:var(--font-mono);text-align:center}.mobile-nav-links{padding:0;margin:0;list-style:none;width:100%}.mobile-nav-links li{counter-increment:nav-counter;margin:0 auto 20px;font-size:clamp(var(--fz-sm),4vw,var(--fz-lg))}.mobile-nav-links li a{display:inline-flex;flex-direction:column;align-items:center;color:var(--lightest-slate);width:100%;padding:3px 20px 20px}.mobile-nav-links li a:before{content:"0" counter(nav-counter) ".";display:block;margin-bottom:5px;color:var(--green);font-size:var(--fz-sm)}.mobile-nav-links li a:hover{color:var(--green)}.mobile-resume-btn{padding:18px 50px;margin:10px auto 0;font-size:var(--fz-sm)}.blur-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#020c1bb3;z-index:10;display:none}.blur-overlay.visible{display:block}.social-wrapper,.email-wrapper{width:40px;position:fixed;bottom:0;left:40px;right:auto;z-index:10;color:var(--light-slate)}.email-wrapper{left:auto;right:40px}.social-links{display:flex;flex-direction:column;align-items:center;gap:20px;list-style:none;padding:0;margin:0}.social-links:after{content:"";display:block;width:1px;height:90px;margin:0 auto;background-color:var(--light-slate)}.social-links li a{display:inline-flex;align-items:center;padding:10px;color:var(--light-slate);transition:var(--transition)}.social-links li a:hover{color:var(--green);transform:translateY(-3px)}.social-links li a svg{width:18px;height:18px}.email-link{display:flex;flex-direction:column;align-items:center;position:relative;letter-spacing:.1em;writing-mode:vertical-rl;font-family:var(--font-mono);font-size:var(--fz-xxs);color:var(--light-slate);transition:var(--transition)}.email-link:after{content:"";display:block;width:1px;height:90px;margin:20px auto 0;background-color:var(--light-slate)}.email-link:hover{color:var(--green);transform:translateY(-3px)}#hero{display:flex;justify-content:center;flex-direction:column;align-items:flex-start;min-height:100vh;padding:0;max-width:1000px;margin:0 auto}.hero-overline{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}.hero-title{margin:0;font-size:clamp(40px,8vw,80px);color:var(--lightest-slate);font-weight:700;line-height:1.1}.hero-subtitle{margin-top:10px;font-size:clamp(30px,6vw,70px);color:var(--slate);font-weight:700;line-height:.9}.hero-description{margin:20px 0 0;max-width:540px;color:var(--slate);font-size:var(--fz-lg);line-height:1.6}.hero-cta{margin-top:50px;font-size:var(--fz-sm);padding:20px 28px}#about{max-width:900px}.about-inner{display:grid;grid-template-columns:3fr 2fr;gap:50px}.about-text p{margin-bottom:15px;color:var(--slate);font-size:var(--fz-lg);line-height:1.7}.about-skills-intro{margin-bottom:20px!important;color:var(--slate)}.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(140px,200px));gap:0 10px;padding:0;margin:0;overflow:hidden;list-style:none}.skills-grid li{position:relative;padding:6px 12px 6px 28px;margin-bottom:10px;font-family:var(--font-mono);font-size:var(--fz-xs);color:var(--lightest-slate);border-radius:var(--border-radius);transition:var(--transition);color:var(--green)}.skills-grid li:hover{background-color:#64ffda14;color:var(--white)}.skills-grid li:before{content:"▹";position:absolute;left:10px;color:var(--green);font-size:var(--fz-sm);line-height:20px}.about-image-wrapper{position:relative;max-width:300px;width:100%}.about-image-wrapper .img-placeholder{width:100%;height:300px;background-color:var(--green-tint);border-radius:var(--border-radius);border:2px solid var(--green);display:flex;align-items:center;justify-content:center;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-xxl);font-weight:700;letter-spacing:2px;position:relative;z-index:1;transition:var(--transition)}.about-image-wrapper:before{content:"";display:block;position:absolute;width:100%;height:100%;border-radius:var(--border-radius);top:15px;left:15px;border:2px solid var(--green);z-index:0;transition:var(--transition)}.about-image-wrapper:hover:before{top:10px;left:10px}.about-image-wrapper:hover .img-placeholder{background-color:transparent}#experience{max-width:700px}.exp-inner{display:flex;min-height:340px}.exp-tabs{display:flex;flex-direction:column;position:relative;width:max-content;z-index:3}.exp-tab-btn{display:inline-flex;align-items:center;width:100%;height:var(--tab-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:var(--fz-xs);text-align:left;white-space:nowrap;transition:var(--transition);cursor:pointer}.exp-tab-btn:hover,.exp-tab-btn:focus{background-color:var(--light-navy);color:var(--green);outline:0}.exp-tab-btn.active{color:var(--green);border-left-color:var(--green);background-color:var(--light-navy)}.exp-panels{position:relative;width:100%;margin-left:20px}.exp-panel{width:100%;height:auto;padding:10px 5px;display:none;animation:fadeIn .25s ease forwards}.exp-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.exp-panel h3{margin-bottom:2px;font-size:var(--fz-xxl);font-weight:500;color:var(--lightest-slate);line-height:1.3}.exp-company-link{color:var(--green)}.exp-range{margin-bottom:25px;color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xs)}.exp-duties{padding:0;margin:0;list-style:none}.exp-duties li{position:relative;padding-left:30px;margin-bottom:10px;color:var(--slate);font-size:var(--fz-md);line-height:1.6}.exp-duties li:before{content:"▹";position:absolute;left:0;color:var(--green)}#work{max-width:1000px}.featured-projects{list-style:none;padding:0;margin:0}.featured-project{position:relative;display:grid;gap:10px;grid-template-columns:repeat(12,1fr);align-items:center;margin-bottom:100px}.featured-project:last-child{margin-bottom:0}.project-content{position:relative;grid-area:1 / 1 / -1 / 7;z-index:5}.featured-project.right .project-content{grid-column:7 / -1;text-align:right}.project-overline{margin:10px 0;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-xs);font-weight:400}.project-title{font-size:clamp(24px,5vw,28px);color:var(--lightest-slate);margin-bottom:20px}.project-title a{color:var(--lightest-slate)}.project-title a:hover{color:var(--green)}.project-description{position:relative;z-index:2;padding:25px;border-radius:var(--border-radius);background-color:var(--light-navy);color:var(--light-slate);font-size:var(--fz-md);line-height:1.6;box-shadow:0 10px 30px -15px var(--navy-shadow);transition:var(--transition)}.project-description:hover{box-shadow:0 20px 30px -15px var(--navy-shadow)}.project-description p{margin:0 0 14px;color:var(--light-slate)}.project-responsibilities{list-style:none;padding:0;margin:0}.project-responsibilities li{position:relative;padding-left:18px;margin-bottom:7px;font-size:var(--fz-sm);color:var(--slate);line-height:1.5}.project-responsibilities li:before{content:"▹";position:absolute;left:0;color:var(--green);font-size:var(--fz-sm);line-height:1.4}.project-sub{margin-top:14px}.project-sub-label{font-size:var(--fz-xs);color:var(--green);font-family:var(--font-mono);margin:0 0 8px}.project-sub-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.project-sub-list li{font-size:var(--fz-xxs);font-family:var(--font-mono);color:var(--slate);background-color:var(--navy);border:1px solid var(--lightest-navy);border-radius:3px;padding:3px 10px}.project-tech-list{display:flex;flex-wrap:wrap;position:relative;z-index:2;margin:25px 0 10px;padding:0;list-style:none;gap:10px 20px}.project-tech-list li{color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xs);white-space:nowrap}.featured-project.right .project-tech-list{justify-content:flex-end}.project-links{display:flex;align-items:center;position:relative;margin-top:10px;margin-left:-10px;color:var(--lightest-slate);gap:5px}.featured-project.right .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;color:var(--light-slate);transition:var(--transition)}.project-links a:hover{color:var(--green);transform:translateY(-3px)}.project-links a svg{width:20px;height:20px}.project-image{grid-area:1 / 7 / -1 / -1;position:relative;z-index:1;border-radius:var(--border-radius);overflow:hidden}.featured-project.right .project-image{grid-column:1 / 7}.project-image-inner{position:relative;width:100%;height:100%;min-height:200px;border-radius:var(--border-radius);overflow:hidden;filter:brightness(.75) grayscale(.3);transition:var(--transition);border:1px solid var(--lightest-navy)}.project-image-inner img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.featured-project:hover .project-image-inner{filter:brightness(1) grayscale(0)}.project-image:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--green-tint);border-radius:var(--border-radius);transition:var(--transition)}.featured-project:hover .project-image:after{background-color:transparent}#projects{max-width:1000px}.other-projects-header{text-align:center;margin-bottom:50px}.other-projects-header h2{font-size:clamp(24px,5vw,var(--fz-heading));color:var(--lightest-slate)}.archive-link{display:inline-block;margin-top:20px;font-family:var(--font-mono);font-size:var(--fz-sm);color:var(--green)}.archive-link:after{content:"";display:block;width:0;height:1px;background-color:var(--green);transition:width .3s ease}.archive-link:hover:after{width:100%}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;position:relative;list-style:none;padding:0;margin:0}.project-card{cursor:default;transition:var(--transition)}.project-card:hover{transform:translateY(-5px)}.project-card-image{display:block;width:100%;overflow:hidden;border-radius:var(--border-radius) var(--border-radius) 0 0;border-bottom:1px solid var(--lightest-navy)}.project-card-image img{width:100%;height:180px;object-fit:cover;object-position:top;display:block;transition:transform .4s ease}.project-card:hover .project-card-image img{transform:scale(1.04)}.project-card-inner{display:flex;flex-direction:column;justify-content:space-between;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);overflow:auto;box-shadow:0 10px 30px -15px var(--navy-shadow)}.project-card:hover .project-card-inner{box-shadow:0 20px 30px -15px var(--navy-shadow)}.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}.card-links{display:flex;align-items:center;gap:5px}.card-links a{display:flex;justify-content:center;align-items:center;padding:5px 7px;color:var(--light-slate);transition:var(--transition)}.card-links a:hover{color:var(--green);transform:translateY(-3px)}.card-links a svg{width:18px;height:18px}.card-title{margin:0 0 10px;font-size:var(--fz-xxl);color:var(--lightest-slate);font-weight:600}.project-card:hover .card-title{color:var(--green)}.card-description{color:var(--light-slate);font-size:var(--fz-sm);line-height:1.6;margin-bottom:16px}.card-responsibilities{list-style:none;padding:0;margin:0 0 16px}.card-responsibilities li{position:relative;padding-left:18px;margin-bottom:8px;font-size:var(--fz-xs);color:var(--slate);line-height:1.6}.card-responsibilities li:before{content:"▹";position:absolute;left:0;color:var(--green);font-size:var(--fz-sm);line-height:1.4}.card-tech-list{display:flex;flex-wrap:wrap;align-items:flex-end;flex-grow:1;padding:0;margin:20px 0 0;list-style:none;gap:0 15px}.card-tech-list li{font-family:var(--font-mono);font-size:var(--fz-xxs);color:var(--slate);line-height:1.75}#contact{max-width:600px;margin:0 auto 100px;text-align:center}.contact-overline{display:block;margin-bottom:20px;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-md);font-weight:400}.contact-overline:before{bottom:0;counter-increment:section;content:"0" counter(section) ".";margin-right:10px}.contact-title{font-size:clamp(40px,5vw,60px);color:var(--lightest-slate);margin-bottom:20px}.contact-description{margin:0 auto 50px;color:var(--slate);font-size:var(--fz-lg);line-height:1.6}.contact-cta{font-size:var(--fz-sm);padding:20px 28px;margin-top:30px}footer{display:flex;justify-content:center;align-items:center;flex-direction:column;height:auto;min-height:70px;padding:15px;text-align:center}.footer-social{display:none;color:var(--light-slate);width:100%;margin:0 auto 10px}.footer-social ul{display:flex;justify-content:center;align-items:center;padding:0;margin:0;list-style:none;gap:10px}.footer-social ul a{padding:10px;color:var(--light-slate);transition:var(--transition)}.footer-social ul a:hover{color:var(--green);transform:translateY(-3px)}.footer-social ul a svg{width:18px;height:18px}.footer-credit{color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xxs);line-height:1}.footer-credit a{color:var(--light-slate);font-size:var(--fz-xxs)}.footer-credit a:hover{color:var(--green)}@media (max-width: 1080px){main{padding:0 100px}}@media (max-width: 768px){main{padding:0 50px}.nav-links,.nav-resume-btn{display:none}.hamburger-btn{display:flex;justify-content:center;align-items:center}.mobile-menu{display:flex}.social-wrapper,.email-wrapper{display:none}.footer-social{display:block}.about-inner{grid-template-columns:1fr}.about-image-wrapper{margin:50px auto 0;max-width:250px}.featured-project{grid-template-columns:1fr}.project-content,.featured-project.right .project-content{grid-column:1 / -1;padding:40px 40px 30px;z-index:5;text-align:left}.project-image{display:none}.project-description{padding:20px 0;background-color:transparent;box-shadow:none}.featured-project.right .project-tech-list{justify-content:flex-start}.featured-project.right .project-links{justify-content:flex-start;margin-left:-10px;margin-right:0}.exp-inner{flex-direction:column;min-height:auto}.exp-tabs{flex-direction:row;overflow-x:auto;width:100%;border-left:none;border-bottom:2px solid var(--lightest-navy);margin-bottom:20px}.exp-tab-btn{border-left:none;border-bottom:2px solid transparent;padding:15px 15px 12px;min-width:max-content;margin-bottom:-2px}.exp-tab-btn.active{border-left:none;border-bottom-color:var(--green)}.exp-panels{margin-left:0}}@media (max-width: 480px){main{padding:0 25px}header{padding:0 25px}.section{padding:80px 0}.projects-grid{grid-template-columns:1fr}.featured-project{margin-bottom:70px}.project-content,.featured-project.right .project-content{padding:30px 25px 20px}}
