@font-face{font-family:Calibre;src:url(/_astro/Calibre-Regular.BF8rtuU2.woff2) format("woff2"),url(/_astro/Calibre-Regular.-1hlrhWf.woff) format("woff");font-weight:400;font-style:normal;font-display:auto}@font-face{font-family:Calibre;src:url(/_astro/Calibre-Medium.Dr3uPw4d.woff2) format("woff2"),url(/_astro/Calibre-Medium.CLLEtnc8.woff) format("woff");font-weight:500;font-style:normal;font-display:auto}@font-face{font-family:Calibre;src:url(/_astro/Calibre-Semibold.ctWswtER.woff2) format("woff2"),url(/_astro/Calibre-Semibold.4458Tx-4.woff) format("woff");font-weight:600;font-style:normal;font-display:auto}@font-face{font-family:SF Mono;src:url(/_astro/SFMono-Regular.CefSygqP.woff2) format("woff2"),url(/_astro/SFMono-Regular.pHQ7OiT5.woff) format("woff");font-weight:400;font-style:normal;font-display:auto}@font-face{font-family:SF Mono;src:url(/_astro/SFMono-Semibold.Cbwo1XB1.woff2) format("woff2"),url(/_astro/SFMono-Semibold.GntYHmax.woff) format("woff");font-weight:600;font-style:normal;font-display:auto}:root{--dark-navy: #0a0805;--navy: #100e0a;--light-navy: #191510;--lightest-navy: #2a2418;--navy-shadow: rgba(8, 6, 3, .7);--dark-slate: #6b6450;--slate: #a39a86;--light-slate: #bdb4a0;--lightest-slate: #ece6d8;--white: #f3eee2;--green: #ffb33e;--green-dim: #cf8a26;--green-tint: rgba(255, 179, 62, .1);--photo-tint: #e3c07e;--red: #ff6f59;--red-light: #ffc9bd;--red-tint: rgba(255, 111, 89, .1);--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;--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: 120px;--hamburger-width: 30px;--transition: all .25s cubic-bezier(.645, .045, .355, 1)}html{box-sizing:border-box;width:100%;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--dark-slate) var(--navy)}*,*:before,*:after{box-sizing:inherit}::selection{background-color:var(--lightest-navy);color:var(--lightest-slate)}:focus{outline:2px dashed var(--green);outline-offset:3px}:focus:not(:focus-visible){outline:none;outline-offset:0}:focus-visible{outline:2px dashed var(--green);outline-offset:3px}::-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}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.blur{overflow:hidden}body.blur .site-header{background-color:transparent}body.blur #content>*{filter:blur(5px) brightness(.7);transition:var(--transition);pointer-events:none;user-select:none}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(640px 440px at 82% -6%,rgba(255,179,62,.13),transparent 70%),radial-gradient(circle at center,rgba(236,230,216,.05) 1px,transparent 1px);background-size:auto,34px 34px}body:after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.04;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#root{position:relative;z-index:1;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:200px 150px}main.fill-height{counter-reset:section;padding:0 150px}section{margin:0 auto;padding:100px 0;max-width:1000px}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)}.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}.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)}img,svg{width:100%;max-width:100%;height:auto;vertical-align:middle}svg{height:100%;fill:currentColor}svg.feather{fill:none}a{display:inline-block;position:relative;color:inherit;text-decoration:none;text-decoration-skip-ink:auto;transition:var(--transition)}a:hover,a:focus{color:var(--green)}.inline-link,p>a{display:inline-block;position:relative;color:var(--green)}.inline-link:after,p>a:after{content:"";display:block;width:0;height:1px;position:relative;bottom:.37em;background-color:var(--green);opacity:.5;transition:var(--transition)}.inline-link:hover:after,.inline-link:focus:after,p>a:hover:after,p>a:focus:after{width:100%}button{cursor:pointer;border:0;border-radius:0}p{margin:0 0 15px}p:last-child,p:last-of-type{margin:0}.skip-to-content,.big-button,.small-button,.more-button,.resume-button,.resume-link,.cta{color:var(--green);background-color:transparent;border:1px solid var(--green);border-radius:var(--border-radius);font-family:var(--font-mono);line-height:1;text-decoration:none;transition:var(--transition)}.skip-to-content:hover,.skip-to-content:focus,.big-button:hover,.big-button:focus,.small-button:hover,.small-button:focus,.more-button:hover,.more-button:focus,.resume-button:hover,.resume-button:focus,.resume-link:hover,.resume-link:focus,.cta:hover,.cta:focus{background-color:var(--green-tint);outline:none}.big-button{padding:1.25rem 1.75rem;font-size:var(--fz-sm)}.resume-button,.small-button,.cta{padding:.75rem 1rem;font-size:var(--fz-xs)}.skip-to-content{position:absolute;top:auto;left:-999px;width:1px;height:1px;overflow:hidden;z-index:-99;padding:1rem;font-size:var(--fz-sm)}.skip-to-content:hover,.skip-to-content:focus{background-color:var(--green);color:var(--navy);top:0;left:0;width:auto;height:auto;overflow:auto;z-index:99;box-shadow:none;transform:none}[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .5s cubic-bezier(.645,.045,.355,1) var(--delay, 0ms),transform .5s cubic-bezier(.645,.045,.355,1) var(--delay, 0ms)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.site-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:#100e0ad9;backdrop-filter:blur(10px);transition:var(--transition)}.site-header-scrolled{height:var(--nav-scroll-height);background-color:#100e0ad9;box-shadow:0 10px 30px -10px var(--navy-shadow)}.site-header-hidden{transform:translateY(calc(var(--nav-scroll-height) * -1))}.site-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;position:relative;z-index:1}.logo .hex-container{position:absolute;inset:0;z-index:-1;transition:var(--transition)}.logo .logo-container{position:relative;z-index:1}.logo polygon{fill:var(--navy)}.logo a:hover,.logo a:focus{outline:0;transform:translate(-4px,-4px)}.logo a:hover .hex-container,.logo a:focus .hex-container{transform:translate(4px,3px)}.desktop-links{display:flex;align-items:center}.desktop-links ol{display:flex;justify-content:space-between;align-items:center;padding:0;margin:0;list-style:none}.desktop-links li{margin:0 5px;position:relative;counter-increment:item 1;font-size:var(--fz-xs)}.desktop-links li a{padding:10px}.desktop-links li a:before{content:"0" counter(item) ".";margin-right:5px;color:var(--green);font-size:var(--fz-xxs)}.resume-button{margin-left:15px}.mobile-menu,.hamburger,.mobile-sidebar{display:none}.side{width:40px;position:fixed;bottom:0;z-index:10;color:var(--light-slate)}.side-right{left:auto;right:40px}.email-rail:after{content:"";display:block;width:1px;height:90px;margin:0 auto;background-color:var(--light-slate)}.email-rail a:hover,.email-rail a:focus{transform:translateY(-3px)}.email-rail{display:flex;flex-direction:column;align-items:center;position:relative}.email-rail a{margin:20px auto;padding:10px;font-family:var(--font-mono);font-size:var(--fz-xxs);line-height:var(--fz-lg);letter-spacing:.1em;writing-mode:vertical-rl}.hero-section{display:flex;justify-content:center;flex-direction:column;align-items:flex-start;min-height:100vh;height:100vh;padding:0}.hero-section .hero-prompt{margin:0 0 30px 4px;max-width:none;color:var(--green);font-family:var(--font-mono);font-size:clamp(var(--fz-sm),5vw,var(--fz-md));font-weight:400}.hero-prompt .prompt-dim{color:var(--slate)}.hero-prompt .term-cursor{display:inline-block;width:9px;height:1em;background-color:var(--green);vertical-align:-2px;margin-left:4px;animation:cursor-blink 1.1s steps(2) infinite}@keyframes cursor-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.hero-prompt .term-cursor{animation:none}}.hero-tagline{margin-top:5px;color:var(--slate);line-height:.9}.hero-section p{margin:20px 0 0;max-width:540px}.hero-section .email-link{margin-top:50px}.about-section{max-width:900px}.about-inner{display:grid;grid-template-columns:3fr 2fr;gap:50px}.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:var(--fz-xs)}.skills-list li:before{content:">";position:absolute;left:0;color:var(--green);font-size:var(--fz-sm);line-height:12px}.about-pic{position:relative;max-width:300px}.about-pic .wrapper{display:block;position:relative;width:100%;aspect-ratio:3 / 4;overflow:hidden;border-radius:var(--border-radius);background-color:var(--photo-tint);box-shadow:0 10px 30px -15px var(--navy-shadow);transition:var(--transition)}.about-pic .wrapper:hover,.about-pic .wrapper:focus{outline:0;transform:translate(-4px,-4px)}.about-pic .wrapper:before,.about-pic .wrapper:after{content:"";display:block;position:absolute;width:100%;height:100%;border-radius:var(--border-radius);transition:var(--transition)}.about-pic .wrapper:before{top:0;left:0;background-color:var(--navy);mix-blend-mode:screen}.about-pic .wrapper:after{border:2px solid var(--green);top:14px;left:14px;z-index:-1}.about-pic .wrapper:hover:after,.about-pic .wrapper:focus:after{transform:translate(8px,8px)}.about-pic .img{position:relative;display:block;width:100%;height:100%;object-fit:cover;object-position:center 18%;border-radius:var(--border-radius);mix-blend-mode:multiply;filter:grayscale(100%) contrast(1);transition:var(--transition)}.about-pic .wrapper:hover .img,.about-pic .wrapper:focus .img{filter:none;mix-blend-mode:normal}.jobs-section,.studies-section{max-width:700px}.jobs-inner{display:flex}.tab-list{position:relative;z-index:3;width:max-content;padding:0;margin:0}.tab-button{display:flex;align-items:center;width:100%;height:var(--tab-height);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}.tab-button.active{color:var(--green)}.tab-button:hover,.tab-button:focus{background-color:var(--light-navy)}.tab-highlight{position:absolute;top:0;left:0;z-index:10;width:2px;height:var(--tab-height);border-radius:var(--border-radius);background:var(--green);transform:translateY(calc(var(--active-tab, 0) * var(--tab-height)));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}.tab-panel h3{margin-bottom:24px;font-size:var(--fz-xxl);font-weight:500;line-height:1.3}.tab-panel .company{color:var(--green)}.tab-panel .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)}.studies-list{padding:0;margin:0;list-style:none}.study-item{padding:0 5px 24px}.study-item:not(:last-of-type){margin-bottom:24px;border-bottom:1px solid var(--lightest-navy)}.study-item-inner{width:100%}.study-header h3{margin:0 0 8px;font-size:var(--fz-xxl);font-weight:500;line-height:1.3}.study-school{margin:0;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-xs)}.study-description{margin-top:18px;color:var(--light-slate);font-size:var(--fz-lg)}.education-block{margin-top:18px}.education-subheading{margin:0 0 14px;color:var(--green);font-family:var(--font-mono);font-size:var(--fz-sm);font-weight:400;text-transform:uppercase;letter-spacing:.08em}.languages-list{margin-top:16px}.language-item:not(:last-child){margin-bottom:14px}.language-row{display:flex;justify-content:space-between;gap:16px;margin-bottom:6px;color:var(--lightest-slate);font-family:var(--font-mono);font-size:var(--fz-xs)}.language-level{color:var(--green)}.language-bar{width:100%;height:8px;border-radius:999px;background:var(--lightest-navy);overflow:hidden}.language-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green-dim),var(--green))}.featured-grid{padding:0;margin:0;list-style:none}.featured-grid a{position:relative;z-index:1}.featured-project{position:relative;display:grid;gap:10px;grid-template-columns:repeat(12,1fr);align-items:center}.featured-project:not(:last-of-type){margin-bottom:100px}.featured-project:nth-of-type(odd) .project-content{grid-column:7 / -1;text-align:right}.featured-project:nth-of-type(odd) .project-tech-list,.featured-project:nth-of-type(odd) .project-links{justify-content:flex-end}.featured-project:nth-of-type(odd) .project-tech-list li{margin:0 0 5px 20px}.featured-project:nth-of-type(odd) .project-links{margin-left:0;margin-right:-10px}.featured-project:nth-of-type(odd) .project-image{grid-column:1 / 8}.project-content{position:relative;grid-column:1 / 7;grid-row:1 / -1}.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)}.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-lg);box-shadow:0 10px 30px -15px var(--navy-shadow)}.project-description strong{color:var(--white);font-weight:400}.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 20px 5px 0;color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xs);white-space:nowrap}.project-links{display:flex;align-items:center;position:relative;margin-top:10px;margin-left:-10px;color:var(--lightest-slate)}.project-links a{display:flex;justify-content:center;align-items:center;padding:10px}.project-image{grid-column:6 / -1;grid-row:1 / -1;position:relative;z-index:1;box-shadow:0 10px 30px -15px var(--navy-shadow)}.project-image a{width:100%;height:100%;background-color:var(--photo-tint);border-radius:var(--border-radius)}.project-image a:before{content:"";position:absolute;inset:0;z-index:3;transition:var(--transition);background-color:var(--navy);mix-blend-mode:screen}.project-image a:hover,.project-image a:focus{background:transparent;outline:0}.project-image a:hover:before,.project-image a:focus:before{background:transparent}.project-image .img{border-radius:var(--border-radius);mix-blend-mode:multiply;filter:grayscale(100%) contrast(1) brightness(90%)}.project-image a:hover .img,.project-image a:focus .img{filter:none}.projects-section{display:flex;flex-direction:column;align-items:center;max-width:700px}.projects-section h2{font-size:clamp(24px,5vw,var(--fz-heading))}.projects-list{width:100%;margin:50px 0 0;padding:0;list-style:none}.project-row{margin:0 0 18px}.project-row-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;width:100%;padding:18px 0;border-bottom:1px solid var(--lightest-navy);transition:var(--transition)}.project-row:hover .project-row-inner,.project-row:focus-within .project-row-inner{border-bottom-color:var(--green)}.project-row-main{display:flex;align-items:flex-start;gap:16px;min-width:0;flex:1}.project-row .folder{flex-shrink:0;color:var(--green);margin-top:4px}.project-row .folder svg{width:28px;height:28px}.project-row-copy{min-width:0}.project-row .project-title{margin:0 0 8px;color:var(--lightest-slate);font-size:var(--fz-xxl)}.project-row .project-description{padding:0;background:transparent;box-shadow:none;color:var(--light-slate);font-size:var(--fz-lg)}.project-row .project-tech-list{margin:14px 0 0}.project-row .project-tech-list li{margin:0 14px 0 0;font-size:var(--fz-xxs);line-height:1.6}.project-links{display:flex;align-items:center;position:relative;color:var(--lightest-slate);flex-shrink:0}.project-links a{display:flex;justify-content:center;align-items:center;padding:8px}.project-links a.external svg{width:22px;height:22px;margin-top:-4px}.project-links svg{width:20px;height:20px}.more-button{margin:40px auto 0;padding:1.25rem 1.75rem;font-size:var(--fz-sm)}.contact-section{max-width:700px;margin:0 auto 100px;text-align:center}.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 .overline:before{bottom:0;font-size:var(--fz-sm)}.contact-section .overline:after{display:none}.contact-section .title{font-size:clamp(40px,5vw,60px)}.contact-form{margin-top:50px;text-align:left}.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.contact-field{display:flex;flex-direction:column;gap:8px;color:var(--lightest-slate);font-family:var(--font-mono);font-size:var(--fz-xs)}.contact-field span{color:var(--green)}.contact-field input,.contact-field textarea{width:100%;border:1px solid var(--lightest-navy);border-radius:var(--border-radius);background-color:var(--light-navy);color:var(--lightest-slate);padding:14px 16px;font-family:var(--font-sans);font-size:var(--fz-md);transition:var(--transition)}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--dark-slate)}.contact-field input:hover,.contact-field textarea:hover,.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}.contact-message{margin-top:16px}.contact-message textarea{resize:vertical;min-height:180px}.contact-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-submit{display:block;margin-top:22px;margin-left:auto;margin-right:auto}.contact-submit:disabled{opacity:.55;cursor:progress}.form-status{display:none;align-items:center;gap:12px;margin:24px 0 0;padding:14px 16px;border:1px solid var(--lightest-navy);border-left-width:3px;border-radius:var(--border-radius);background:var(--light-navy);color:var(--light-slate);font-family:var(--font-mono);font-size:var(--fz-xs);line-height:1.5;text-align:left}.form-status[data-state]{display:flex;animation:form-status-in .3s ease both}@keyframes form-status-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.form-status-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px}.form-status-icon .fs-spinner,.form-status-icon .fs-glyph{display:none}.form-status-icon .fs-glyph{width:18px;height:18px}.fs-spinner{width:16px;height:16px;border:2px solid var(--lightest-navy);border-top-color:var(--green);border-radius:50%;animation:fs-spin .7s linear infinite}@keyframes fs-spin{to{transform:rotate(360deg)}}.form-status[data-state=sending]{border-left-color:var(--green)}.form-status[data-state=sending] .fs-spinner{display:block}.form-status[data-state=success]{border-left-color:var(--green);background:var(--green-tint);color:var(--lightest-slate)}.form-status[data-state=success] .form-status-icon{color:var(--green)}.form-status[data-state=success] .fs-check{display:block}.form-status[data-state=error]{border-left-color:var(--red);background:var(--red-tint);color:var(--red-light)}.form-status[data-state=error] .form-status-icon{color:var(--red)}.form-status[data-state=error] .fs-alert{display:block}.subtitle{color:var(--green);margin:0 0 20px;font-size:var(--fz-md);font-family:var(--font-mono);font-weight:400;line-height:1.5}.archive-table-wrap{margin:100px -20px}.archive-table-wrap table{width:100%;border-collapse:collapse}.archive-table-wrap tbody tr:hover,.archive-table-wrap tbody tr:focus{background-color:var(--light-navy)}.archive-table-wrap th,.archive-table-wrap td{padding:10px;text-align:left}.archive-table-wrap th:first-child,.archive-table-wrap td:first-child{padding-left:20px}.archive-table-wrap th:last-child,.archive-table-wrap td:last-child{padding-right:20px}.archive-table-wrap td:first-child{border-top-left-radius:var(--border-radius);border-bottom-left-radius:var(--border-radius)}.archive-table-wrap td:last-child{border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius)}.archive-table-wrap svg{width:20px;height:20px}.archive-table-wrap td.year{padding-right:20px}.archive-table-wrap td.title{padding-top:15px;padding-right:20px;color:var(--lightest-slate);font-size:var(--fz-xl);font-weight:600;line-height:1.25}.archive-table-wrap td.company{font-size:var(--fz-lg);white-space:nowrap}.archive-table-wrap td.tech{font-size:var(--fz-xxs);font-family:var(--font-mono);line-height:1.5}.archive-table-wrap .separator{margin:0 5px}.archive-table-wrap td.tech span{display:inline-block}.archive-table-wrap td.links{min-width:100px}.archive-table-wrap td.links div{display:flex;align-items:center}.archive-table-wrap td.links a{display:flex;justify-content:center;align-items:center;flex-shrink:0}.archive-table-wrap td.links a+a{margin-left:10px}.not-found{display:flex;min-height:100vh;align-items:center;justify-content:center;flex-direction:column;text-align:center}@media(max-width:1080px){main{padding:200px 100px}main.fill-height{padding:0 100px}.site-header{padding:0 40px}.side-right{right:20px}.numbered-heading:after{width:200px}.featured-project:nth-of-type(odd) .project-content{grid-column:5 / -1}.project-content{grid-column:1 / 9}}@media(max-width:768px){body{font-size:var(--fz-lg)}main{padding:150px 50px}main.fill-height{padding:0 50px}section{padding:80px 0}.numbered-heading:after{width:100%}.site-header{padding:0 25px}.desktop-links{display:none}.mobile-menu{display:block}.hamburger{display:flex;justify-content:center;align-items:center;position:relative;z-index:10;margin-right:-15px;padding:15px;background-color:transparent;color:inherit}.ham-box{display:inline-block;position:relative;width:var(--hamburger-width);height:24px}.ham-box-inner,.ham-box-inner:before,.ham-box-inner:after{display:block;position:absolute;right:0;height:2px;border-radius:var(--border-radius);background-color:var(--green);transition:var(--transition)}.ham-box-inner{top:50%;width:var(--hamburger-width)}.ham-box-inner:before,.ham-box-inner:after{content:""}.ham-box-inner:before{top:-10px;width:120%}.ham-box-inner:after{bottom:-10px;width:80%}.hamburger.menu-open .ham-box-inner{transform:rotate(225deg)}.hamburger.menu-open .ham-box-inner:before{top:0;opacity:0}.hamburger.menu-open .ham-box-inner:after{bottom:0;width:100%;transform:rotate(-90deg)}.mobile-sidebar{display:flex;justify-content:center;align-items:center;position:fixed;top:0;bottom:0;right:0;padding:50px 10px;width:min(75vw,400px);height:100vh;background-color:var(--light-navy);box-shadow:-10px 0 30px -15px var(--navy-shadow);z-index:9;transform:translate(100vw);visibility:hidden;transition:var(--transition)}.mobile-sidebar.menu-open{transform:translate(0);visibility:visible}.mobile-sidebar 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-sidebar ol{padding:0;margin:0;list-style:none;width:100%;counter-reset:item 0}.mobile-sidebar li{position:relative;margin:0 auto 20px;counter-increment:item 1;font-size:clamp(var(--fz-sm),4vw,var(--fz-lg))}.mobile-sidebar li:before{content:"0" counter(item) ".";display:block;margin-bottom:5px;color:var(--green);font-size:var(--fz-sm)}.mobile-sidebar a{width:100%;padding:3px 20px 20px}.resume-link{padding:18px 50px;margin:10% auto 0;width:max-content}.side{display:none}.about-inner{display:block}.about-pic{margin:50px auto 0;width:70%}.featured-project{box-shadow:0 10px 30px -15px var(--navy-shadow)}.featured-project:not(:last-of-type){margin-bottom:70px}.featured-project:nth-of-type(odd) .project-content,.project-content{display:flex;flex-direction:column;justify-content:center;height:100%;grid-column:1 / -1;padding:40px 40px 30px;text-align:left;z-index:5}.featured-project:nth-of-type(odd) .project-tech-list,.featured-project:nth-of-type(odd) .project-links{justify-content:flex-start}.featured-project:nth-of-type(odd) .project-tech-list li,.project-tech-list li{margin:0 10px 5px 0;color:var(--lightest-slate)}.featured-project:nth-of-type(odd) .project-links,.project-links{justify-content:flex-start;margin-left:-10px;margin-right:0}.featured-project:nth-of-type(odd) .project-image,.project-image{grid-column:1 / -1;height:100%;opacity:.25}.project-title{color:var(--white)}.project-title a{position:static}.project-title a:before{content:"";display:block;position:absolute;z-index:0;width:100%;height:100%;inset:0}.project-description{padding:20px 0;background-color:transparent;box-shadow:none}.project-image .img{object-fit:cover;width:auto;height:100%;filter:grayscale(100%) contrast(1) brightness(50%)}.contact-section{margin:0 auto 50px}.contact-grid{grid-template-columns:1fr}.contact-submit{width:100%}.archive-table-wrap{margin:50px -10px}.hide-on-mobile{display:none}.archive-table-wrap th:first-child,.archive-table-wrap td:first-child{padding-left:10px}.archive-table-wrap th:last-child,.archive-table-wrap td:last-child{padding-right:10px}.archive-table-wrap td.year{padding-right:10px;font-size:var(--fz-sm)}}@media(max-width:600px){.numbered-heading:after{margin-left:10px}.jobs-inner{display:block}.tab-list{display:flex;overflow-x:auto;width:calc(100% + 100px);padding-left:50px;margin-left:-50px;margin-bottom:30px}.tab-list .tab-button:first-of-type{margin-left:50px}.tab-list .tab-button:last-of-type{padding-right:50px}.tab-button{justify-content:center;min-width:var(--tab-width);padding:0 15px;border-left:0;border-bottom:2px solid var(--lightest-navy);text-align:center}.tab-highlight{top:auto;bottom:0;width:100%;max-width:var(--tab-width);height:2px;margin-left:100px;transform:translate(calc(var(--active-tab, 0) * var(--tab-width)))}.tab-panels{margin-left:0}.mobile-sidebar li{margin:0 auto 10px}}@media(max-width:480px){main{padding:125px 25px}main.fill-height{padding:0 25px}section{padding:60px 0}.hero-section .hero-prompt{margin:0 0 20px 2px}.numbered-heading:before{margin-bottom:-3px;margin-right:5px}.tab-list{width:calc(100% + 50px);padding-left:25px;margin-left:-25px}.tab-list .tab-button:first-of-type{margin-left:25px}.tab-list .tab-button:last-of-type{padding-right:25px}.tab-highlight{margin-left:50px}.featured-project:not(:last-of-type){margin-bottom:30px}.featured-project:nth-of-type(odd) .project-content,.project-content{padding:30px 25px 20px}}@media(max-height:700px)and (min-width:700px),(max-width:360px){.hero-section{height:auto;padding-top:var(--nav-height)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}[data-reveal]{opacity:1;transform:none}}
