:root{color-scheme:light;--green-dark:#174f38;--green:#287a4b;--green-medium:#4b9a68;--green-light:#bfdcc8;--green-pale:#edf6f0;--text:#19302b;--muted:#5d6d67;--white:#fff;--surface:#f7f8f5;--border-color:#dce8e1;--content-width:76rem;--page-padding:clamp(1.25rem, 3.4vw, 3rem);--space-section:clamp(4rem, 7vw, 7rem);--radius:0.75rem;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*,*::before,*::after{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,sans-serif;font-size:clamp(1rem,.94rem + .2vw,1.125rem);line-height:1.65;color:var(--text);background:var(--white);overflow-wrap:break-word}img{display:block;max-width:100%;height:auto}a{color:var(--green-dark);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--green);text-decoration-thickness:2px}a:active{color:var(--text)}a:focus-visible{outline:3px solid var(--green);outline-offset:5px;border-radius:2px}.skip-link{position:absolute;top:.75rem;left:var(--page-padding);z-index:2;padding:.75rem 1rem;background:var(--white);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}p.reveal b{display:none}h1,h2,h3,h4,p{margin-block-start:0}h1,h2,h3,h4{color:var(--green-dark);line-height:1.22}h1,h2{letter-spacing:-.045em}h1{font-size:clamp(2.75rem,4.6vw,4.5rem);font-weight:750}h2{font-size:clamp(2rem,3vw,2.75rem);margin-block-end:1.5rem}h3{font-size:1.25rem;letter-spacing:-.02em}p{margin-block-end:1.25rem}.container{width:min(calc(100% - var(--page-padding) * 2),var(--content-width));margin-inline:auto}.site-section,.page{padding-block:var(--space-section)}.site-section{scroll-margin-top:2rem}.section-intro{max-width:68ch;color:var(--muted);margin-block-end:3rem}.section-lead{color:var(--muted);font-size:1.125rem}.site-header{border-bottom:1px solid var(--border-color);background:var(--white)}.navigation{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;padding-block:1.25rem}.brand{display:inline-flex;align-items:center;gap:.8rem;font-size:1.125rem;font-weight:700;text-decoration:none}.brand:hover{text-decoration:underline}.navigation ul,.site-footer ul{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style:none}.navigation ul a{display:inline-block;padding-block:.5rem;font-size:.9rem;font-weight:550;text-decoration:none}.navigation ul a:hover{text-decoration:underline}.nav-toggle{display:none}.hero{padding-block:clamp(3.5rem,7vw,7rem)}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.1fr);gap:1.5rem;align-items:center}.hero h1{margin-block-end:1.1rem}.hero-role{font-size:clamp(1.2rem,1.8vw,1.55rem);font-weight:600;line-height:1.4;color:var(--green-dark);max-width:30ch}.hero-intro{max-width:52ch;color:var(--muted)}.hero-illustration{width:100%;max-width:42.5rem;justify-self:center}.hero-actions{margin-block-start:2rem}.hero-buttons{display:flex;flex-wrap:wrap;gap:.75rem}.button{display:inline-flex;justify-content:center;align-items:center;min-height:3rem;max-width:100%;padding:.75rem 1.25rem;border:1px solid var(--green);border-radius:.4rem;font-size:.9rem;font-weight:600;line-height:1.5;text-align:center;text-decoration:none;transition:background-color 150ms ease,border-color 150ms ease}.button-primary{background:var(--green);color:var(--white)}.button-primary:hover{background:var(--green-dark);border-color:var(--green-dark);color:var(--white)}.button-secondary{background:var(--white);color:var(--green-dark)}.button-secondary:hover{background:var(--green-pale);color:var(--green-dark)}.button:hover{text-decoration:underline}.button:active{background:var(--text);border-color:var(--text);color:var(--white)}.hero-profile-link{display:inline-block;margin-block-start:.875rem;font-size:.875rem}.profile{border-top:1px solid var(--border-color)}.profile-content{max-width:70ch}.profile h2::before{content:"";display:block;width:2.5rem;height:3px;background:var(--green);margin-block-end:1.5rem}.profile p:last-child{margin-block-end:0}.expertise{background:var(--surface)}.expertise h2{margin-block-end:.75rem}.expertise-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.25rem;margin:2.5rem 0 3rem;padding:0;list-style:none}.expertise-item{grid-column:span 2}.expertise-item:nth-last-child(-n+2){grid-column:span 3}.expertise-item{padding:clamp(1.5rem,2.3vw,2rem);background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius)}.expertise-item h3{line-height:1.35;margin-block-end:1rem}.expertise-item p{margin:0;font-size:1rem}.selected-technologies{border-top:1px solid var(--border-color);padding-block-start:2rem}.selected-technologies h3,.project-technologies h4{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.025em;color:var(--muted);margin-block-end:1rem}.selected-technologies h3{font-size:.85rem}.selected-technologies-list,.project-technology-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;list-style:none}.selected-technologies-list li,.project-technology-list li{max-width:100%;padding:.25rem .7rem;border:1px solid var(--border-color);border-radius:.35rem;font-size:.8125rem;background:var(--green-pale);color:var(--green-dark)}.selected-technologies-list li{padding:.3rem .75rem;font-size:.85rem}.project-technology-list li{background:var(--surface);color:var(--muted)}.project-entry{display:grid;grid-template-columns:10.5rem minmax(0,1fr);column-gap:2.5rem;padding:2.5rem 0;border-top:1px solid var(--border-color)}.project-entry:last-child{padding-block-end:0}.project-entry>:not(.project-period){grid-column:2}.project-entry h3{max-width:45ch;font-size:clamp(1.25rem,1.9vw,1.6rem);margin-block-end:.5rem}.project-entry>p{max-width:70ch}.project-metadata{margin:0}.project-period{grid-column:1;grid-row:1/span 5}.project-metadata dt,.project-technologies h4{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.project-metadata dd{margin:0;font-size:.9375rem;font-weight:600}.project-period dd{font-size:.875rem;font-weight:500;color:var(--green-dark)}.project-client{margin-block-end:1.5rem}.project-technologies{margin-block-start:1.75rem}.project-technologies h4+.project-technology-list{margin-block-start:0}.client-feedback{background:var(--surface)}.client-feedback-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start;margin-block-start:2.5rem}.client-feedback-entry{margin:0;padding:clamp(1.5rem,3vw,2.5rem);background:var(--white);border:1px solid var(--border-color);border-radius:var(--radius)}.client-feedback-entry:nth-child(2){grid-column:1}.client-feedback-entry:nth-child(3){grid-column:2;grid-row:1/span 2}.client-feedback-entry blockquote{margin:0;padding:0}.client-feedback-entry blockquote p:last-child{margin-block-end:0}.testimonial-attribution{border-top:1px solid var(--border-color);margin-block-start:2rem;padding-block-start:1.15rem}.testimonial-attribution p{font-size:.875rem;line-height:1.55;color:var(--muted);margin-block-end:.75rem}.testimonial-attribution strong{color:var(--green-dark);font-size:1rem}.testimonial-attribution time{font-size:.8125rem}.testimonial-attribution p:last-child{margin-block-end:0}.testimonial-attribution .translation-note{margin-block-start:.7rem;font-size:.8125rem}.contact{background:var(--green-pale);border-block:1px solid var(--green-light)}.contact p{max-width:65ch}.contact-email{margin-block-start:.5rem}.contact-links{display:flex;flex-wrap:wrap;gap:.75rem 1.75rem;margin:1.25rem 0 0;padding:0;list-style:none}.contact-links a{display:inline-block;padding-block:.5rem;font-weight:600}.site-footer{color:var(--muted);font-size:.875rem}.footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;padding-block:2rem}.footer-content p{margin:0}.site-footer a{display:inline-block;padding-block:.5rem;color:var(--muted)}.site-footer a:hover{color:var(--green-dark)}.page{max-width:70ch;min-height:65vh}.page h1{font-size:clamp(2.5rem,4vw,3.5rem);margin-block-end:2rem}.page-content h2,.page-content h3{margin-block-start:2.5rem}.page-content ul,.page-content ol{padding-inline-start:1.5rem}@media(max-width:70rem){.expertise-list{grid-template-columns:repeat(2,minmax(0,1fr))}.expertise-item,.expertise-item:nth-last-child(-n+2){grid-column:span 1}.navigation{gap:.5rem 1.5rem}.navigation ul{column-gap:1rem}}@media(max-width:56rem){.hero-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.hero-content{max-width:42rem}.hero h1{font-size:clamp(2.75rem,7vw,4rem)}.hero-role{max-width:none}.hero-illustration{max-width:34rem}.project-entry{grid-template-columns:9rem minmax(0,1fr);gap:2rem}.client-feedback-list{grid-template-columns:minmax(0,1fr)}.client-feedback-entry:nth-child(n){grid-column:auto;grid-row:auto}}@media(max-width:46rem){.navigation{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:0;padding-block:1.25rem}.brand{justify-self:start}.nav-toggle{width:2.75rem;height:2.75rem;padding:.625rem;border:1px solid var(--border-color);border-radius:.4rem;background:var(--white);cursor:pointer}.js .nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:.3rem}.nav-toggle:hover{background:var(--green-pale)}.nav-toggle:focus-visible{outline:3px solid var(--green);outline-offset:3px}.nav-toggle__bar{display:block;width:100%;height:2px;border-radius:1px;background:var(--green-dark);transition:transform 150ms ease,opacity 150ms ease}.nav-toggle[aria-expanded=true] .nav-toggle__bar:first-child{transform:translateY(.4rem)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle__bar:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle__bar:last-child{transform:translateY(-.4rem)rotate(-45deg)}.navigation .primary-navigation{grid-column:1/-1;display:flex;flex-direction:column;width:100%;margin-block-start:1.25rem;padding-block-start:.25rem;border-top:1px solid var(--border-color)}.js .navigation .primary-navigation{display:none}.js .navigation .primary-navigation.is-open{display:flex}.navigation .primary-navigation a{display:block;padding-block:.75rem;font-size:1rem}}@media(max-width:40rem){.hero-layout{gap:1.5rem}.hero-illustration{max-width:28rem}.expertise-list{grid-template-columns:minmax(0,1fr)}.project-entry{display:block;padding:2rem 0}.project-period{margin-block-end:.75rem}.project-entry h3{margin-block-end:.5rem}.contact-links{gap:.5rem 1.25rem}.footer-content{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.button,.nav-toggle__bar{transition:none}}