:root{--paper:#f2efe5;--ink:#1d2b24;--green:#405c32;--lichen:#91a36c;--clay:#c56445;--yellow:#edbd36;--blue:#5d758c;--bark:#5a3b2b;--mono:'DM Mono',monospace;--serif:'Fraunces',serif;--sans:'Manrope',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.45}.grain{position:fixed;inset:0;pointer-events:none;opacity:.09;z-index:5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:20;background:#fff;padding:.5rem}.site-header{height:90px;display:flex;align-items:center;justify-content:space-between;padding:1.3rem 4vw;position:absolute;z-index:4;left:0;right:0}.wordmark{font:500 .72rem/1 var(--mono);letter-spacing:.08em;color:var(--ink);text-decoration:none}.wordmark span{color:var(--clay);font-size:1.2rem}nav{display:flex;gap:1.5rem;align-items:center}nav a{color:var(--ink);font:500 .74rem var(--mono);text-decoration:none;text-transform:uppercase;letter-spacing:.04em}.nav-contact{border:1px solid var(--ink);padding:.55rem .8rem}.menu{display:none;background:none;border:0;font:500 .74rem var(--mono);text-transform:uppercase}.hero{min-height:820px;padding:10.5rem 8vw 4rem;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;position:relative;overflow:hidden}.eyebrow,.project-meta>p,.date,.shelf-grid span{font:500 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.hero h1,.intro h2,.section-head h2,.note-copy h2,.shelf h2,.message-head h2,.contact h2{font:500 clamp(3.2rem,6.3vw,6.5rem)/.93 var(--serif);letter-spacing:-.055em;margin:.8rem 0 1.4rem}.hero h1 em,.contact h2 em{color:var(--clay);font-style:italic}.lede{max-width:420px;font-size:1.05rem}.circle-link{display:flex;align-items:center;gap:1rem;margin-top:2.8rem;color:var(--ink);text-decoration:none;font-size:.85rem}.circle-link span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--yellow);font-size:1.2rem}.hero-visual{height:550px;background:#b4c59a;position:relative;overflow:hidden;border-radius:48% 48% 4px 4px;box-shadow:12px 13px 0 var(--bark)}.sun{position:absolute;width:180px;height:180px;border-radius:50%;background:var(--yellow);right:10%;top:10%}.mountain{position:absolute;bottom:-10px;width:100%;height:55%;background:var(--green);clip-path:polygon(0 80%,30% 25%,53% 62%,80% 5%,100% 70%,100% 100%,0 100%)}.m2{height:40%;background:#6f8558;opacity:.8}.fern{position:absolute;color:#284624;font-size:8rem}.f1{left:12%;bottom:8%;transform:rotate(-17deg)}.f2{right:7%;bottom:6%;font-size:5rem}.specimen-label{position:absolute;bottom:1.2rem;right:1.2rem;background:var(--paper);padding:.7rem;font:400 .57rem/1.5 var(--mono);transform:rotate(-4deg)}.visual-caption{position:absolute;left:-3.8rem;top:20%;transform:rotate(-90deg);font:.62rem var(--mono);letter-spacing:.06em}.visual-caption span{opacity:.6}.side-note{position:absolute;right:2.2vw;bottom:6rem;font:.62rem/1.65 var(--mono);letter-spacing:.05em}.side-note b{font-size:.73rem}.intro{padding:9rem 12vw;display:grid;grid-template-columns:1fr 2fr;gap:4rem;background:var(--yellow)}.intro h2{font-size:clamp(2.7rem,5vw,5.4rem)}.intro p:not(.eyebrow){max-width:520px;font-size:1.15rem}.text-link{display:inline-block;color:inherit;margin-top:1.3rem;font:500 .78rem var(--mono);text-transform:uppercase;text-underline-offset:5px}.work-section{padding:8rem 6vw}.section-head{max-width:650px}.section-head h2{font-size:clamp(3rem,5vw,5rem);margin-bottom:.4rem}.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin:3rem 0 2rem}.filters button{border:1px solid #849184;background:transparent;padding:.55rem .8rem;border-radius:2rem;font:500 .7rem var(--mono);cursor:pointer}.filters button.active,.filters button:hover{background:var(--green);color:#fff;border-color:var(--green)}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2.4rem 1.5rem}.project{grid-column:span 6}.project:nth-child(2){grid-column:8/span 5;margin-top:6rem}.project:nth-child(3){grid-column:2/span 5}.project:nth-child(4){grid-column:8/span 4;margin-top:2rem}.project-art{height:330px;display:grid;place-items:center;overflow:hidden;transition:transform .35s}.project:hover .project-art{transform:scale(.98)}.art-salt{background:var(--blue);color:var(--paper);font:20rem var(--serif)}.art-owl{background:#c8ad92;position:relative;color:#302720;font-size:10rem}.art-owl i{width:9rem;height:9rem;border-radius:50% 50% 42% 42%;background:var(--bark);display:block;position:absolute}.art-walk{background:var(--green);color:var(--yellow);font:500 clamp(2.5rem,4vw,4rem)/.8 var(--serif);text-align:center}.art-seed{background:var(--clay);color:#ffe4c5;font:12rem/.4 var(--serif);letter-spacing:-.25em}.project-meta h3{font:500 1.5rem var(--serif);margin:.6rem 0 .2rem}.project-meta p{margin:.3rem 0}.project-meta>p{font-size:.6rem;margin-top:1.1rem}.button{display:inline-flex;gap:2rem;align-items:center;background:var(--ink);color:var(--paper);padding:.9rem 1.1rem;margin-top:3rem;text-decoration:none;font:500 .72rem var(--mono);text-transform:uppercase}.button span{font-size:1.2rem}.field-note{display:grid;grid-template-columns:1.05fr 1fr;background:#d9d7ba}.note-image{min-height:610px;background:#657f62;position:relative;overflow:hidden}.branch{font:30rem/.8 var(--serif);color:#203b2b;position:absolute;left:5%;bottom:0;transform:rotate(20deg)}.bird{font:12rem var(--serif);color:var(--yellow);position:absolute;right:12%;top:25%;transform:rotate(-20deg)}.stamp{position:absolute;bottom:1.5rem;left:1.5rem;border:1px solid var(--paper);color:var(--paper);padding:.5rem;font:.62rem var(--mono);letter-spacing:.07em}.note-copy{padding:10% 13%;align-self:center}.note-copy h2{font-size:clamp(2.8rem,4.5vw,4.8rem)}.tags{display:flex;gap:.5rem;margin-top:2rem}.tags span{border:1px solid var(--green);padding:.35rem .55rem;border-radius:1rem;font:.63rem var(--mono)}.taxa{padding:8rem 8vw;background:var(--green);color:var(--paper)}.taxa .section-head{max-width:700px}.taxa-list{margin:4rem 0 1rem;border-top:1px solid #a7b298}.taxa-list article{display:grid;grid-template-columns:45px 70px 1fr auto;align-items:center;gap:1rem;border-bottom:1px solid #a7b298;padding:1rem 0}.taxa-num{font:.65rem var(--mono)}.taxa-icon{height:60px;width:60px;display:grid;place-items:center;font:2.5rem var(--serif)}.kh{background:var(--yellow);color:var(--green)}.ma{background:var(--clay)}.pi{background:var(--blue)}.taxa-list h3{font:500 1.3rem var(--serif);margin:0}.taxa-list p{margin:.2rem 0;font-size:.85rem}.taxa-list a{color:var(--paper);font-size:1.5rem}.button.light{background:var(--paper);color:var(--green)}.shelf{padding:8rem 8vw;background:var(--paper)}.shelf-title{display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:2rem}.shelf-title h2{font-size:clamp(3.2rem,5vw,5.5rem)}.shelf-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #879082;margin-top:4rem}.shelf-grid>a,.shelf-grid>article{min-height:250px;padding:1.5rem;border-right:1px solid #879082;text-decoration:none;color:inherit;position:relative}.shelf-grid>*:first-child{border-left:1px solid #879082}.shelf-grid h3{font:500 1.6rem var(--serif);margin:2rem 0 .5rem}.shelf-grid b{position:absolute;right:1rem;bottom:1rem;font-size:1.3rem}.messages{padding:8rem 8vw;background:var(--bark);color:var(--paper)}.message-head{max-width:760px}.message-head h2{font-size:clamp(3.1rem,5vw,5.5rem)}.postcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem}.postcard{aspect-ratio:1/.82;color:var(--ink);padding:1.7rem;display:flex;flex-direction:column;justify-content:space-between;transform:rotate(-2deg)}.postcard:nth-child(2){transform:rotate(2deg);margin-top:2rem}.postcard:nth-child(3){transform:rotate(-1deg);margin-top:-1rem}.postcard p{font:500 1.45rem/1.1 var(--serif);margin:0}.postcard footer{border-top:1px solid #0004;padding-top:.7rem;font:.6rem var(--mono);letter-spacing:.05em}.postcard footer span{display:block;margin-top:.2rem}.clay{background:var(--clay)}.yellow{background:var(--yellow)}.blue{background:#a4bdc8}.contact{padding:10rem 8vw 2rem;background:var(--paper)}.contact h2{font-size:clamp(4rem,8vw,8rem)}.contact>p:not(.eyebrow){font-size:1.1rem}.email{display:block;color:var(--ink);font:500 clamp(1.45rem,3vw,3rem) var(--serif);margin-top:3.5rem;text-underline-offset:8px}.email span{color:var(--clay)}.contact-foot{display:flex;justify-content:space-between;gap:2rem;border-top:1px solid #8f968b;margin-top:10rem;padding-top:1rem;font:.6rem var(--mono);letter-spacing:.05em}.contact-foot a{color:inherit}@media(max-width:760px){.site-header{height:75px;padding:1rem 6vw}nav{display:none;position:absolute;top:72px;right:4vw;background:var(--paper);padding:1rem;flex-direction:column;align-items:flex-start;box-shadow:3px 3px var(--ink)}nav.open{display:flex}.menu{display:block}.hero{grid-template-columns:1fr;padding:8rem 7vw 3rem;gap:2rem;min-height:auto}.hero-visual{height:410px;order:-1}.hero h1{font-size:clamp(3.5rem,13vw,5rem)}.side-note{display:none}.intro{grid-template-columns:1fr;padding:5rem 7vw;gap:1rem}.work-section,.taxa,.shelf,.messages,.contact{padding:5rem 7vw}.project-grid{display:block}.project,.project:nth-child(n){margin:0 0 2.7rem;display:block}.project-art{height:270px}.field-note{grid-template-columns:1fr}.note-image{min-height:390px}.note-copy{padding:4rem 7vw}.shelf-title{grid-template-columns:1fr;gap:0}.shelf-grid{grid-template-columns:1fr 1fr;margin-top:2.5rem}.shelf-grid>a,.shelf-grid>article{min-height:190px;padding:1rem}.shelf-grid>*:nth-child(3){border-left:1px solid #879082}.postcards{grid-template-columns:1fr;gap:1.2rem;margin-top:2.5rem}.postcard,.postcard:nth-child(n){margin:0;aspect-ratio:1/.7}.contact-foot{margin-top:5rem;flex-wrap:wrap}.taxa-list article{grid-template-columns:28px 50px 1fr auto}.taxa-icon{width:45px;height:45px;font-size:1.8rem}}

/* Brand typography: expressive Fraunces titles; DM Mono for all informational copy. */
:root { --sans: var(--mono); }
body { font-family: var(--mono); font-size: .875rem; line-height: 1.7; letter-spacing: 0; }
p, li, dd, dt, input, textarea, select, button { font-family: var(--mono); letter-spacing: 0; }
h1, h2, h3, h4, h5, h6, .email, .dek, .postcard p, .empty {
  font-family: var(--serif) !important;
  letter-spacing: 0 !important;
}
@media (max-width: 720px) { body { font-size: .8125rem; line-height: 1.65; } }

/* Small introduction portrait */
.intro-profile { align-self: center; width: min(100%, 320px); margin: 0; border-radius: 50%; overflow: hidden; }
.intro-profile img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.intro { padding: 8rem 8vw; }
.hero-intro { max-width: 630px; font-size: .85rem; line-height: 1.7; }
.hero-intro p { margin: 0 0 1rem; }
.intro > div > p:not(.eyebrow) { width: 100%; max-width: none; font-size: .85rem !important; line-height: 1.7; }
.contact-start { margin-top: 2.2rem; }
.contact-socials { display: flex; gap: .75rem; margin-top: 1.25rem; }
.contact-socials a { display: inline-grid; width: 2.85rem; height: 2.85rem; place-items: center; border-radius: 50%; background: var(--ink); color: var(--paper); text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease; }
.contact-socials span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.contact-socials svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.7; }
.contact-socials a:nth-child(2) svg { fill: currentColor; stroke: none; }
.contact-socials a:hover { background: var(--yellow); color: var(--green); transform: translateY(-.18rem); }
.contact-socials + .contact-foot { margin-top: 5rem; }

/* One shared footer treatment. The footer follows the page's colour context,
   while its margins, rule, type and alignment stay identical everywhere. */
.site-footer { margin: 0; padding: 5rem 8vw 2rem; background: var(--footer-background, transparent); color: var(--footer-foreground, inherit); }
.contact-foot, .site-footer-inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; border-top: 1px solid color-mix(in srgb, currentColor 48%, transparent); margin-top: 0; padding-top: 1rem; font: .6rem var(--mono); letter-spacing: .05em; }
.contact-foot { margin-top: 5rem; }
.contact-foot a, .site-footer-top { color: inherit; text-decoration: none; text-underline-offset: 4px; }
.contact-foot a:last-child, .site-footer-top { justify-self: end; }
.site-footer-top:hover { color: var(--yellow); text-decoration: underline; }
@media(max-width:760px) { .site-footer { padding: 4rem 7vw 2rem; } .contact-foot, .site-footer-inner { grid-template-columns: 1fr; gap: .75rem; } .contact-foot a:last-child, .site-footer-top { justify-self: start; } }
.contact-socials a:focus-visible { outline: 2px solid currentColor; outline-offset: .25rem; }
.intro .text-link, .note-copy .text-link { transition: color .2s ease, text-decoration-color .2s ease; }
.intro .text-link span, .note-copy .text-link span { display: inline-block; transition: transform .2s ease; }
.intro .text-link:hover, .note-copy .text-link:hover { color: var(--clay); text-decoration-color: var(--clay); }
.intro .text-link:hover span, .note-copy .text-link:hover span { transform: translateX(.3rem); }
.intro .text-link:focus-visible, .note-copy .text-link:focus-visible { outline: 2px solid currentColor; outline-offset: .3rem; }
@media (max-width: 760px) {
  .intro { padding: 5rem 7vw; }
  .intro-profile { width: min(68vw, 280px); margin-bottom: 1.4rem; }
}

/* Global heading system */
h1,h2,h3,h4,h5,h6{font-family:var(--serif)!important;font-weight:600!important}
