:root{--paper:#f4f1e8;--paper-raised:#fbf9f3;--ink:#17211b;--muted:#5d665f;--accent:#145c47;--accent-strong:#0e4837;--rule:#17211b2e;--display:Georgia, "Times New Roman", serif;--body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--content-width:1180px;color-scheme:light;font-family:var(--body);color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--paper);min-width:320px;min-height:100vh;color:var(--ink);font-family:var(--body);background-image:linear-gradient(#17211b06 1px,#0000 1px),linear-gradient(90deg,#17211b06 1px,#0000 1px);background-size:2rem 2rem;margin:0;line-height:1.5}h1,h2,h3,p{margin-top:0}a{color:var(--accent);text-underline-offset:.2em;text-decoration-color:currentColor;text-decoration-thickness:1px}a:hover{color:var(--accent-strong)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.container{width:min(100% - 3rem, var(--content-width));margin-inline:auto}.site-header{border-bottom:1px solid var(--rule)}.site-header nav,.footer-content,.footer-content nav,.nav-links{align-items:center;display:flex}.site-header nav,.footer-content{justify-content:space-between;gap:1rem}.site-header nav{min-height:4.5rem}.brand{color:var(--ink);font-family:var(--display);font-size:1.5rem;font-weight:700;text-decoration:none}.nav-links,.footer-content nav{flex-wrap:wrap;gap:.75rem 1.25rem}.menu-toggle{display:none}.nav-links a,.footer-content a{font-size:.9375rem}.skip-link{z-index:1;background:var(--ink);color:var(--paper-raised);padding:.75rem 1rem;text-decoration:none;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}main{min-height:60vh}.hero{align-items:center;min-height:70vh;padding-block:5rem;display:flex}.hero-content{max-width:62rem}.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem;font-weight:800}.hero h1{font-family:var(--display);letter-spacing:-.055em;max-width:12ch;margin-bottom:1.75rem;font-size:clamp(3.25rem,8vw,7.5rem);font-weight:500;line-height:.94}.hero-introduction{color:var(--muted);max-width:46rem;font-size:clamp(1.05rem,1.8vw,1.3rem)}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1.1rem;font-size:.9375rem;font-weight:700;text-decoration:none;display:inline-flex}.button-primary{background:var(--accent);color:var(--paper-raised)}.button-primary:hover{background:var(--accent-strong);color:var(--paper-raised)}.button-secondary{border:1px solid var(--rule);color:var(--ink)}.page-section{padding-block:clamp(4.5rem,8vw,7rem)}.section-rule{border-top:1px solid var(--rule)}.section-heading{grid-template-columns:minmax(0,2fr) minmax(16rem,1fr);margin-bottom:clamp(2.5rem,5vw,4rem);display:grid}.section-heading .eyebrow{grid-column:1/-1}.section-heading h2{font-family:var(--display);letter-spacing:-.04em;margin-bottom:0;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:500;line-height:1}.section-description{color:var(--muted);align-self:end;max-width:32rem;margin-bottom:0}.experience-list{border-top:1px solid var(--rule)}.experience-item{grid-template-columns:minmax(8rem,.7fr) minmax(0,2.2fr) minmax(9rem,.8fr);gap:2rem;padding-block:3rem;display:grid}.experience-item+.experience-item{border-top:1px solid var(--rule)}.experience-meta{color:var(--muted);font-size:.875rem}.experience-meta p{margin-bottom:.35rem}.entry-content h3,.project-card h3,.skill-group h3,.education-item h3{font-family:var(--display);margin-bottom:.4rem;font-size:1.6rem;line-height:1.15}.entry-organization{color:var(--accent);font-weight:700}.entry-content>p,.project-card-content>p,.education-item>div>p:last-child{color:var(--muted)}.entry-highlights{margin-block:1.5rem;padding-left:1.15rem}.entry-highlights li+li{margin-top:.65rem}.tech-tags{flex-wrap:wrap;gap:.45rem;display:flex}.tech-tag{border:1px solid var(--rule);color:var(--muted);padding:.3rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.entry-results{border-left:2px solid var(--accent);align-self:start;gap:1.25rem;padding-left:1.25rem;display:grid}.result-metric{gap:.1rem;display:grid}.result-metric strong{font-family:var(--display);font-size:1.45rem;line-height:1}.result-metric span{color:var(--muted);font-size:.75rem}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.project-card{background:var(--paper-raised);border:1px solid var(--rule);flex-direction:column;min-height:100%;padding:1.75rem;display:flex}.project-card-content{flex:1}.project-card .tech-tags{margin-block:1.5rem}.project-results{border-left:0;border-top:2px solid var(--accent);grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:-1.75rem;padding:1.4rem 1.75rem 0}.project-links{border-top:1px solid var(--rule);flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.project-links a{font-size:.875rem;font-weight:700}.case-study-hero{padding-block:clamp(4.5rem,9vw,8rem)}.case-study-breadcrumbs{color:var(--muted);align-items:center;gap:.65rem;margin-bottom:clamp(3.5rem,7vw,6rem);font-size:.8125rem;display:flex}.case-study-breadcrumbs a{color:inherit}.case-study-hero h1{font-family:var(--display);letter-spacing:-.055em;max-width:13ch;margin-bottom:1.75rem;font-size:clamp(3.2rem,7.5vw,7rem);font-weight:500;line-height:.96}.case-study-summary{color:var(--muted);max-width:48rem;font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.55}.case-study-meta{border-block:1px solid var(--rule);grid-template-columns:minmax(10rem,.7fr) minmax(7rem,.4fr) minmax(20rem,1.7fr);margin-block:clamp(2.5rem,5vw,4rem) 0;display:grid}.case-study-meta>div{padding-block:1.5rem}.case-study-meta>div+div{border-left:1px solid var(--rule);padding-left:1.5rem}.case-study-meta dt{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.6rem;font-size:.6875rem;font-weight:800}.case-study-meta dd{margin:0}.case-study-results{flex-wrap:wrap;gap:2.5rem;margin-top:2rem;display:flex}.case-study-results .result-metric{border-left:2px solid var(--accent);min-width:9rem;padding-left:1rem}.case-study-results .result-metric strong{font-size:2rem}.case-study-results-note{color:var(--muted);flex-basis:100%;max-width:38rem;margin-bottom:0;font-size:.8125rem}.case-study-action{margin-top:2.5rem}.case-study-content{padding-block:clamp(4.5rem,9vw,8rem)}.case-study-grid{grid-template-columns:minmax(7rem,.35fr) minmax(0,1fr);gap:clamp(2rem,8vw,8rem);display:grid}.case-study-index{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:800}.prose{max-width:48rem}.prose h2{font-family:var(--display);letter-spacing:-.035em;margin-block:4rem 1.25rem;font-size:clamp(2rem,4vw,3rem);font-weight:500;line-height:1.05}.prose h2:first-child{margin-top:0}.prose p,.prose li{color:var(--muted);font-size:1.0625rem;line-height:1.8}.prose p{margin-bottom:1.4rem}.prose strong{color:var(--ink)}.prose code{background:var(--paper-raised);border:1px solid var(--rule);color:var(--ink);overflow-wrap:anywhere;padding:1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;line-height:1.75;display:block}.case-study-footer{padding-block:clamp(3.5rem,7vw,5.5rem)}.case-study-navigation{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:2rem;display:grid}.case-study-navigation-link{border:1px solid var(--rule);color:var(--ink);min-height:9rem;padding:1.5rem;text-decoration:none;display:grid}.case-study-navigation-link span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.6875rem;font-weight:800}.case-study-navigation-link strong{font-family:var(--display);align-self:end;font-size:1.35rem;line-height:1.15}.case-study-navigation-next{text-align:right}.case-study-back-link{font-size:.875rem;font-weight:700}.compact-section{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.4fr);gap:2rem;display:grid}.compact-section .section-heading{margin-bottom:0;display:block}.statement{font-family:var(--display);letter-spacing:-.025em;margin-bottom:0;font-size:clamp(1.7rem,3.5vw,2.8rem);line-height:1.2}.skills-grid{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.skill-group{background:var(--paper);padding:1.5rem}.skill-group h3{font-size:1.25rem}.education-list{border-top:1px solid var(--rule)}.education-item{grid-template-columns:minmax(8rem,.7fr) minmax(0,3fr);gap:2rem;padding-block:2.25rem;display:grid}.education-item+.education-item{border-top:1px solid var(--rule)}.education-period{color:var(--muted);font-size:.875rem}.contact-section{background:var(--accent);color:var(--paper-raised)}.contact-content{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.4fr);gap:2rem;display:grid}.contact-content .section-heading{margin-bottom:0;display:block}.contact-content .eyebrow,.contact-link{color:var(--paper-raised)}.contact-link{grid-column:2;justify-self:start;font-size:1.1rem;font-weight:700}.contact-link:hover{color:var(--paper-raised)}.contact-link:focus-visible{color:var(--paper-raised);outline-color:var(--paper-raised)}body>footer{border-top:1px solid var(--rule);color:var(--muted)}.footer-content{min-height:5.5rem;padding-block:1rem}.footer-content p{margin:0}@media (width<=640px){.container{width:min(100% - 2.5rem, var(--content-width))}.footer-content{flex-direction:column;justify-content:center;align-items:flex-start;padding-block:1rem}.hero{min-height:auto;padding-block:4.5rem}.hero h1{font-size:clamp(3rem,15vw,5rem)}.hero-actions{flex-direction:column;align-items:stretch}.compact-section,.contact-content,.case-study-grid,.case-study-navigation{grid-template-columns:1fr}.contact-link{grid-column:1}.case-study-index{margin-bottom:0}.case-study-navigation>span[aria-hidden=true]{display:none}.case-study-navigation-next{text-align:left}}@media (width<=819px){.section-heading,.case-study-meta{grid-template-columns:1fr}.section-description{margin-top:1.25rem}.experience-item{grid-template-columns:1fr}.entry-results{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.projects-grid,.skills-grid{grid-template-columns:1fr}.case-study-meta>div+div{border-left:0;border-top:1px solid var(--rule);padding-left:0}.case-study-results{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.case-study-results .result-metric{min-width:0}.case-study-results-note{grid-column:1/-1}.education-item{grid-template-columns:1fr;gap:.5rem}}@media (width<=759px){.site-header nav{flex-flow:wrap;align-items:center;min-height:4.5rem;padding-block:0}.site-header nav[data-js-menu] .menu-toggle{border:1px solid var(--rule);color:var(--ink);font:inherit;background:0 0;justify-content:center;align-items:center;min-height:2.75rem;margin-left:auto;padding-inline:.9rem;font-size:.875rem;font-weight:700;display:inline-flex}.site-header nav[data-js-menu] .nav-links{flex-direction:column;flex-basis:100%;align-items:stretch;gap:0;width:100%;padding-block:.5rem 1rem;display:none}.site-header nav[data-js-menu] .nav-links[data-open]{display:flex}.nav-links a{align-items:center;min-height:2.75rem;padding-inline:.25rem;display:flex}}@media (width<=479px){a,button{min-height:2.75rem}a{align-items:center;display:inline-flex}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
