@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-italic.woff2") format("woff2");font-weight:200 900;font-style:italic;font-display:swap}@font-face{font-family:"Inter";src:url("fonts/inter.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{color-scheme:light dark;--paper: #fbfaf7;--paper-alt: #f2f1ea;--ink: #14201a;--ink-soft: #3a4640;--muted: #5d6862;--line: #e2e0d8;--brand: #2c973d;--brand-bright: #8cc63f;--link: #1e7a31;--dark-bg: #14201a;--dark-ink: #eef2ee;--dark-muted: #a9b5ae;--serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--wrap: 72rem;--gutter: clamp(1.25rem, 4vw, 2.5rem);--radius: 14px}@media (prefers-color-scheme: dark){:root{--paper: #0f1512;--paper-alt: #141c18;--ink: #e9eee9;--ink-soft: #c9d2cc;--muted: #9eaaa3;--line: #26302b;--link: #9fd35a;--dark-bg: #1d2c24}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--brand-bright);outline-offset:3px;border-radius:4px}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em;text-wrap:balance}h1{font-size:clamp(2.5rem,6vw,4.5rem);letter-spacing:-.025em}h2{font-size:clamp(1.75rem,3.4vw,2.6rem)}h3{font-size:1.4rem}p{margin:0 0 1em}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}.skip{position:absolute;left:-999px;top:.5rem;background:var(--ink);color:var(--paper);padding:.5rem 1rem;z-index:10}.skip:focus{left:.5rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:1rem}.eyebrow a{color:inherit;text-decoration:none}.eyebrow a:hover{text-decoration:underline}@media (prefers-color-scheme: dark){.eyebrow{color:var(--brand-bright)}}.lede{font-size:clamp(1.15rem,2vw,1.35rem);line-height:1.55;color:var(--ink-soft);max-width:38em}.actions{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center}.button{display:inline-block;background:var(--ink);color:var(--paper);font-weight:600;text-decoration:none;padding:.85rem 1.4rem;border-radius:999px;transition:transform .15s ease,background-color .15s ease}.button:hover{background:var(--brand);color:#fff;transform:translateY(-1px)}.button-quiet{background:rgba(0,0,0,0);color:var(--ink);padding-inline:0}.button-quiet:hover{background:rgba(0,0,0,0);color:var(--link);transform:none;text-decoration:underline}.site-header{border-bottom:1px solid var(--line)}.header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;padding-block:1.1rem}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);text-decoration:none}.brand-text{font-family:var(--serif);font-size:1.3rem;line-height:1;letter-spacing:-.01em}.brand-name{font-weight:700}.brand-sub{font-weight:400;color:var(--muted)}.site-nav ul{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.6rem;margin:0;padding:0}.site-nav a{color:var(--ink-soft);font-weight:500;font-size:.97rem;text-decoration:none}.site-nav a:hover{color:var(--ink);text-decoration:underline}.site-nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:2px}@media (max-width: 30rem){.site-nav{width:100%}.site-nav ul{gap:.25rem .5rem;justify-content:space-between}.site-nav a{font-size:.92rem}.site-nav .nav-cta{padding:.4rem .8rem}}.site-nav .nav-cta{color:var(--paper);background:var(--ink);padding:.5rem 1.05rem;border-radius:999px}.site-nav .nav-cta:hover,.site-nav .nav-cta[aria-current=page]{background:var(--brand);color:#fff;text-decoration:none}.hero{padding-block:clamp(3.5rem,9vw,7.5rem) clamp(3rem,7vw,6rem)}.hero-grid{display:grid;grid-template-columns:minmax(0, 1fr);align-items:center;gap:3rem}.hero h1{max-width:13ch}.hero h1 em{font-style:italic;font-weight:500;color:var(--brand)}@media (prefers-color-scheme: dark){.hero h1 em{color:var(--brand-bright)}}.hero .lede{margin-bottom:2.25rem}.hero-mark{display:none}@media (min-width: 60rem){.hero-grid{grid-template-columns:minmax(0, 1fr) 18rem}.hero-mark{display:block;justify-self:end}.hero-mark img{width:18rem;opacity:.9}}.clients{border-block:1px solid var(--line);padding-block:1.75rem}.clients-inner{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 2.5rem}.clients-label{font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}.client-list{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem clamp(1.25rem,3vw,2.5rem);margin:0;padding:0}.client-list li{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:600;color:var(--ink-soft);letter-spacing:-.01em}.section{padding-block:clamp(3.5rem,8vw,6.5rem)}.section-alt{background:var(--paper-alt)}.section-head{margin-bottom:2.5rem}.section-head h2{margin:0}.section-more{margin:2.5rem 0 0;font-weight:600}.section-more a{text-decoration:none}.section-more a:hover{text-decoration:underline}.cards{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit, minmax(17rem, 1fr))}.card{border:1px solid var(--line);border-radius:var(--radius);padding:1.75rem;background:var(--paper)}.card h3{margin-bottom:.2rem}.card p:last-child{margin-bottom:0;color:var(--ink-soft)}.card-num{font-family:var(--serif);font-size:.95rem;color:var(--brand);font-weight:600;margin-bottom:1.5rem}.card-tag{color:var(--muted);font-weight:500;margin-bottom:1rem}.expertise{display:grid;gap:2.25rem 3rem;grid-template-columns:repeat(auto-fit, minmax(18rem, 1fr));margin:0}.expertise>div{border-top:2px solid var(--brand);padding-top:1rem}.expertise dt{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin-bottom:.4rem}.expertise dd{margin:0;color:var(--ink-soft)}.section-dark{background:var(--dark-bg);color:var(--dark-ink)}.section-dark .eyebrow{color:var(--brand-bright)}.principles-grid{display:grid;gap:1rem 4rem}@media (min-width: 60rem){.principles-grid{grid-template-columns:20rem minmax(0, 1fr)}}.principles{list-style:none;counter-reset:p;margin:0;padding:0}.principles li{counter-increment:p;position:relative;padding:1.1rem 0 1.1rem 3.25rem;border-top:1px solid rgba(255,255,255,.12);color:var(--dark-muted);font-size:1.1rem}.principles li::before{content:counter(p, decimal-leading-zero);position:absolute;left:0;top:1.2rem;font-family:var(--serif);font-size:.95rem;color:var(--brand-bright)}.principles li:last-child{border-bottom:1px solid rgba(255,255,255,.12)}.principles strong{color:var(--dark-ink);font-weight:600}.facts{display:grid;grid-template-columns:repeat(auto-fit, minmax(14rem, 1fr));gap:2rem 3rem;margin:0}.facts dt{font-family:var(--serif);font-size:clamp(2.75rem,6vw,4rem);font-weight:600;line-height:1;letter-spacing:-.03em;color:var(--brand);margin-bottom:.6rem}.facts dd{margin:0;color:var(--ink-soft);max-width:18em}@media (prefers-color-scheme: dark){.facts dt,.card-num{color:var(--brand-bright)}}.section-work{padding-top:0}.section-tight{padding-block:0 clamp(3rem,7vw,5rem)}.work-list{display:grid;gap:1.25rem}.work{display:grid;gap:.75rem 3rem;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);padding:clamp(1.5rem,4vw,2.25rem);background:var(--paper)}@media (min-width: 50rem){.work{grid-template-columns:15rem minmax(0, 1fr)}}.work h3{font-size:clamp(1.3rem,2.4vw,1.65rem);margin-bottom:.6rem}.work .work-body>p{color:var(--ink-soft);max-width:42em}.work-meta p{margin:0}.work-client{font-family:var(--serif);font-size:clamp(1.5rem,2.8vw,2rem);font-weight:600;letter-spacing:-.015em;line-height:1.15}.work-client a{color:inherit;text-decoration:none}.work-client a:hover{color:var(--link);text-decoration:underline}.work-role{color:var(--ink-soft);font-size:.95rem;margin-top:.35rem !important}.work-period{color:var(--muted);font-size:.9rem}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0}.tags li{font-size:.8rem;font-weight:500;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:.15rem .65rem}.results{display:grid;grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr));gap:2rem 3rem;margin:0}.results dt{font-family:var(--serif);font-size:clamp(2rem,4vw,2.75rem);font-weight:600;line-height:1.05;letter-spacing:-.02em;color:var(--brand-bright);margin-bottom:.6rem}.results dd{margin:0;color:var(--dark-muted)}.prose-after{margin-block:clamp(3rem,7vw,5rem)}.service-cards{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit, minmax(17rem, 1fr))}.service-cards a{display:flex;flex-direction:column;gap:.6rem;height:100%;padding:1.6rem;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius);color:var(--ink);text-decoration:none;background:var(--paper);transition:transform .15s ease,border-color .15s ease}.service-cards a:hover{transform:translateY(-2px);border-color:var(--brand)}.service-cards .service-title{font-family:var(--serif);font-size:1.4rem;font-weight:600;line-height:1.2}.service-cards .service-desc{color:var(--ink-soft);flex:1}.service-cards .service-more{color:var(--link);font-weight:600;font-size:.95rem}.more-services{padding-bottom:clamp(3rem,7vw,5rem)}.more-services h2{font-size:1.3rem;margin-bottom:1rem}.more-services ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.more-services a{display:inline-block;padding:.45rem 1rem;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:500}.more-services a:hover{border-color:var(--brand);color:var(--link)}.label{display:inline-block;font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--paper);background:var(--brand);border-radius:999px;padding:.15rem .6rem;vertical-align:middle;width:fit-content}.eyebrow .label{color:#fff}.expertise dt a{color:inherit;text-decoration:none}.expertise dt a:hover{color:var(--link);text-decoration:underline}.section-dark .principles a{color:var(--brand-bright)}.cta{padding-block:clamp(3rem,7vw,5rem);background:var(--brand);color:#fff;background-image:linear-gradient(120deg, #23803a 0%, var(--brand) 55%, #5aae3c 100%)}.cta h2{color:#fff;margin-bottom:.4rem}.cta p{margin:0;color:rgba(255,255,255,.9);max-width:34em}.cta .button{background:#fff;color:#14201a}.cta .button:hover{background:#14201a;color:#fff}.cta-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.75rem 3rem}.page-head{padding-block:clamp(3rem,8vw,6rem) clamp(1.5rem,4vw,2.5rem)}.page-head h1{max-width:18ch}.page-head .lede{margin-bottom:0}.page-head.is-post h1{font-size:clamp(2.1rem,4.5vw,3.25rem);max-width:24ch}.article{padding-bottom:clamp(3rem,8vw,6rem)}.prose{max-width:42rem;border-top:1px solid var(--line);padding-top:clamp(1.75rem,4vw,2.5rem)}.prose h2{font-size:clamp(1.6rem,3vw,2rem);margin-top:2.5rem}.prose h3{margin-top:2rem}.prose h4{font-size:1.1rem;margin:1.75rem 0 .5rem}.prose>:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.25rem;margin:0 0 1.25em}.prose li{margin-bottom:.45em}.prose li::marker{color:var(--brand)}.prose blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:3px solid var(--brand);border-radius:0 var(--radius) var(--radius) 0;background:var(--paper-alt);color:var(--ink-soft)}.prose blockquote>:last-child{margin-bottom:0}.prose img{border-radius:var(--radius);display:block;margin:0 0 1.5rem}.prose code{font-size:.92em;background:var(--paper-alt);padding:.1em .35em;border-radius:4px}.contact-email{font-family:var(--serif);font-size:clamp(1.6rem,4.5vw,2.4rem);font-weight:600;letter-spacing:-.015em;margin-bottom:1.5rem;overflow-wrap:anywhere}.contact-email a{text-decoration-thickness:2px}.post-list{list-style:none;margin:0 0 clamp(3rem,8vw,6rem);padding:0;max-width:48rem;border-top:1px solid var(--line)}.post-list li{border-bottom:1px solid var(--line)}.post-list a{display:grid;gap:.35rem;padding-block:1.5rem;color:var(--ink);text-decoration:none}.post-list a:hover .post-title{color:var(--link);text-decoration:underline}.post-list .post-title{font-family:var(--serif);font-size:1.45rem;font-weight:600;line-height:1.25}.post-list .post-desc{color:var(--ink-soft)}.post-list time{color:var(--muted);font-size:.9rem}.external-writing{max-width:48rem;margin:0 0 clamp(3rem,8vw,6rem)}.external-writing>h2{font-size:clamp(1.6rem,3vw,2rem);margin-bottom:.5rem}.external-writing>p{color:var(--ink-soft)}.external-writing>ul{list-style:none;margin:1.5rem 0 0;padding:0;border-top:1px solid var(--line)}.external-writing>ul>li{padding-block:1.4rem;border-bottom:1px solid var(--line)}.external-writing h3{font-size:1.3rem;margin-bottom:.35rem}.external-writing .years{font-family:var(--sans);font-size:.85rem;font-weight:500;color:var(--muted);margin-left:.4rem}.external-writing p{margin-bottom:.6rem}.external-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1.5rem}.external-links a{font-weight:500}.site-footer{border-top:1px solid var(--line);padding-block:3rem 2rem;font-size:.95rem;color:var(--muted)}.footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem 4rem}.footer-brand p{margin:.75rem 0 0;max-width:22em}.footer-brand .brand-text{font-size:1.15rem}.footer-nav{display:flex;flex-wrap:wrap;gap:1rem 4rem}.footer-nav ul{list-style:none;margin:0;padding:0}.footer-nav li{margin-bottom:.4rem}.footer-nav a{color:var(--ink-soft);text-decoration:none}.footer-nav a:hover{color:var(--ink);text-decoration:underline}.legal{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.85rem}.legal p{margin:0}@media (prefers-reduced-motion: reduce){*{transition:none !important}}