:root{--ink:#15251d;--muted:#587065;--paper:#f8f6ed;--green:#c6dabf;--accent:#e95739;--line:#b7c8af;--dark:#123b36}*{box-sizing:border-box}html{background:var(--green);scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}.site-header{min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:2}.brand{font-family:Georgia,serif;font-size:1.1rem;font-weight:bold;text-decoration:none;letter-spacing:.02em}.site-header nav{display:flex;gap:1.4rem}.site-header nav a{text-decoration:none;font-size:.92rem}.site-header nav a:hover,.text-link:hover{color:var(--accent)}.menu-button{display:none;background:none;border:1px solid var(--ink);padding:.35rem .55rem}main{min-height:calc(100vh - 145px)}.hero{background:var(--green);min-height:clamp(510px,75vh,720px);display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);align-items:center;gap:3rem;padding:4rem max(5vw,calc((100vw - 1180px)/2))}.hero h1,.page-intro h1,.project h1,.contact h1{font-family:Georgia,serif;font-weight:400;line-height:1.05;font-size:clamp(3rem,7vw,6.5rem);letter-spacing:-.045em;margin:.1em 0}.hero-role{font-size:1.35rem;margin:0}.intro{font-size:1.1rem;max-width:32rem}.hero>img{width:100%;height:min(62vh,600px);object-fit:cover;object-position:center;border-radius:2px;box-shadow:16px 16px 0 rgba(21,37,29,.13)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--muted);margin:0 0 .7rem}.button{display:inline-block;background:var(--accent);color:white;text-decoration:none;border:1px solid var(--accent);padding:.7rem 1rem;font-size:.9rem;font-weight:700;margin-top:1rem}.button:hover{background:#c83f28;border-color:#c83f28}.button-secondary{background:transparent;color:var(--ink);border-color:var(--ink);margin:0 .5rem .5rem 0}.button-secondary:hover{background:var(--ink);color:white}.section,.page-intro,.project,.about-layout,.contact{width:min(1180px,90vw);margin:0 auto}.section{padding:6rem 0}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:2rem}.section h2{font-family:Georgia,serif;font-size:3rem;line-height:1;margin:0}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}.project-card{border:1px solid var(--line);background:white;transition:transform .18s ease,box-shadow .18s ease}.project-card:hover{transform:translateY(-4px);box-shadow:7px 8px 0 var(--green)}.project-card a{text-decoration:none;display:block;height:100%}.project-card img{width:100%;aspect-ratio:2/1;object-fit:cover;display:block}.card-body{padding:1.15rem}.card-body h2{font-family:Georgia,serif;font-size:1.55rem;line-height:1.1;margin:0 0 .55rem}.card-body p:not(.eyebrow){color:#3d5047;margin:0 0 .8rem;font-size:.9rem}.text-link{font-weight:700;text-underline-offset:.25em}.all-link{display:inline-block;margin-top:2rem}.page-intro{padding:6rem 0 3rem;max-width:1180px}.page-intro>p:last-child{max-width:40rem;font-size:1.1rem}.project{padding:3rem 0 6rem}.back-link{display:inline-block;margin-bottom:3rem;text-underline-offset:.25em}.project-header{max-width:860px;margin-bottom:2rem}.project-lede{font-size:1.35rem;max-width:44rem}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag-list span{border:1px solid var(--line);padding:.22rem .5rem;font-size:.78rem}.project-cover{width:100%;max-height:560px;object-fit:cover;border-radius:2px}.project-copy{max-width:720px;margin:3rem auto}.project-copy p{font-size:1.05rem}.project-links{margin-top:2rem}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.gallery-item{appearance:none;border:0;padding:0;background:none;cursor:zoom-in}.gallery-item img{width:100%;height:100%;max-height:480px;object-fit:cover;display:block}.gallery-item:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.illustration-grid{width:min(1180px,90vw);margin:0 auto 6rem;columns:3;column-gap:1rem}.illustration-grid .gallery-item{display:block;margin:0 0 1rem;width:100%}.illustration-grid img{width:100%;display:block}.about-layout{display:grid;grid-template-columns:minmax(220px,.6fr) minmax(0,1fr);gap:clamp(2rem,7vw,7rem);padding:0 0 6rem;max-width:920px}.about-layout>img{width:100%;border-radius:2px}.about-layout p{margin-top:0}.about-layout h2{font-family:Georgia,serif;margin-top:2rem}.about-layout ul{padding-left:1.2rem}.contact{padding:8rem 0;max-width:800px}.contact>p:not(.eyebrow){font-size:1.15rem;max-width:42rem}.email-link{font-family:Georgia,serif;font-size:clamp(1.6rem,4vw,3rem);text-decoration-color:var(--accent);text-underline-offset:.22em}.contact-note{font-size:.85rem!important;color:var(--muted);margin-top:5rem}.lightbox{padding:0;border:0;background:transparent;max-width:min(95vw,1300px);max-height:92vh}.lightbox::backdrop{background:rgba(8,21,16,.9)}.lightbox img{max-width:100%;max-height:88vh;display:block}.lightbox button{position:absolute;right:0;top:0;transform:translate(40%,-40%);border:0;border-radius:50%;width:2.3rem;height:2.3rem;background:white;font-size:1.5rem;cursor:pointer}footer{background:var(--dark);color:#edf7e9;padding:1.4rem 5vw;display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}footer a{color:inherit}@media(max-width:760px){.site-header{min-height:60px}.menu-button{display:block}.site-header nav{display:none;position:absolute;left:0;right:0;top:60px;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line)}.site-header nav.is-open{display:flex}.site-header nav a{padding:.8rem 5vw;border-top:1px solid var(--line)}.hero{grid-template-columns:1fr;padding-top:3rem;padding-bottom:3rem;gap:2rem}.hero>img{height:340px}.project-grid{grid-template-columns:1fr}.section{padding:4rem 0}.page-intro{padding-top:4rem}.gallery{grid-template-columns:1fr}.illustration-grid{columns:2}.about-layout{grid-template-columns:1fr}.about-layout>img{max-width:300px}.project{padding-top:2rem}footer{flex-direction:column}.project-cover{max-height:340px}}
@media (max-width: 760px) { .menu-button { display: block !important; } }
@media (min-width: 761px) { .menu-button { display: none !important; } }
.project-grid{width:min(1060px,90vw);margin-left:auto;margin-right:auto;gap:2rem}.project-card img{aspect-ratio:2.4/1}
.hero{isolation:isolate}.hero>div{position:relative;z-index:1;min-width:0}.hero>img{position:relative;z-index:0}@media(max-width:760px){.hero h1{font-size:clamp(2.5rem,12vw,3.75rem);overflow-wrap:anywhere}}
