:root{color-scheme:light;--paper:#f6f5ef;--ink:#263d32;--muted:#5e6a60;--line:#cdd3c7;--sage:#e5e9dd;--accent:#395c45}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.65}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:#61794e}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:2px}.page{width:min(100% - 3rem,1000px);margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:2rem 0;border-bottom:1px solid var(--line)}.wordmark{font-weight:700;letter-spacing:-.04em;font-size:1.25rem;text-decoration:none}.wordmark span{color:#70865c;margin-left:.35rem}nav{display:flex;gap:1.75rem;font-size:.875rem}nav a{text-decoration:none}.intro{padding:5rem 0 4rem}.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.14em;font-weight:600;color:var(--muted);margin:0 0 1.6rem}h1{font-size:1rem;font-weight:600;margin:0 0 1rem}.pronouns{font-size:.875rem;font-weight:400;color:var(--muted);margin-left:.8rem}.intro-line{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.4rem,5.3vw,4rem);line-height:1.14;letter-spacing:-.045em;margin:0 0 2.2rem}em{font-weight:400;color:#58744e}.intro-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}.intro-bottom p{max-width:470px;margin:0;color:var(--muted)}.text-link{font-size:.875rem;font-weight:600;white-space:nowrap}.text-link span{margin-left:.5rem}.section{display:grid;grid-template-columns:220px 1fr;gap:2rem;border-top:1px solid var(--line);padding:3.5rem 0;scroll-margin-top:1rem}.section-label{display:flex;gap:.9rem;align-items:baseline}.section-number{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}h2{font-size:.9rem;font-weight:600;margin:0}h3{margin:0;font-size:1.05rem}.writing{background:var(--sage);border:0;padding:2.7rem;border-radius:3px;margin-bottom:3.5rem;grid-template-columns:calc(220px - 2.7rem) 1fr}.writing .eyebrow{margin-bottom:.6rem}.writing h3,.contact h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.035em;font-size:2.5rem;line-height:1.2}.writing p:not(.eyebrow){color:var(--muted);margin:.8rem 0 1.6rem}.button{display:inline-flex;align-items:center;gap:1.7rem;background:var(--ink);color:var(--paper);padding:.75rem 1.15rem;font-size:.875rem;text-decoration:none;border-radius:3px;transition:background .15s}.button:hover{background:#416047;color:white}.section-intro{margin:0 0 2rem;color:var(--muted)}.job h3{margin-bottom:1rem}.job h3 a{text-decoration:none}.timeline{padding:0 0 0 1.1rem;margin:0;list-style:none;border-left:1px solid #a9b69f}.timeline li{position:relative;margin-bottom:1.15rem;display:flex;justify-content:space-between;gap:1rem}.timeline li:last-child{margin-bottom:0}.timeline li:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#789169;left:calc(-1.1rem - 4px);top:.65rem}.timeline li:first-child span{font-weight:600}time{font-size:.875rem;color:var(--muted);white-space:nowrap}.timeline span,.role span{font-size:.9375rem}.previous-work{border-block:1px solid var(--line);margin-top:2rem}summary{cursor:pointer;list-style:none;padding:1rem 0;font-size:.875rem;display:flex;justify-content:space-between;align-items:center}summary::-webkit-details-marker{display:none}.expand{font-size:1.3rem;line-height:1}details[open] .expand{transform:rotate(45deg)}.previous-jobs{padding:.5rem 0 1.3rem}.previous-jobs .job+.job{margin-top:1.5rem}.previous-jobs h3{margin-bottom:.5rem}.role{display:flex;justify-content:space-between;gap:1rem;margin:.35rem 0}.toolbox{margin:1.8rem 0}.toolbox h3{font-size:.875rem;margin-bottom:.55rem}.toolbox p{font-size:.875rem;color:var(--muted);margin:.25rem 0}.contact h3{font-size:2.3rem}.contact p{max-width:450px;color:var(--muted);margin:1.2rem 0 1.6rem}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.6rem 0 2.5rem;font-size:.75rem;color:var(--muted)}.ecosystem{display:flex;align-items:center;gap:.45rem}.snail{display:inline-block;font-size:1.4rem;transition:transform .5s}.ecosystem:hover .snail{transform:translateX(-8px)}.skip-link{position:absolute;top:-100px;left:1rem;background:var(--ink);color:white;padding:.7rem;z-index:2}.skip-link:focus{top:1rem}
@media(max-width:760px){.section{grid-template-columns:1fr;gap:1.6rem}.writing{padding:2rem}.intro{padding:3.5rem 0}.timeline li,.role{flex-direction:column;gap:.05rem}.intro-bottom{align-items:flex-start;flex-direction:column;gap:1.2rem}.section{padding-block:2.5rem}.writing{padding:2rem;margin-bottom:2.5rem}footer{align-items:flex-start;flex-direction:column;gap:.4rem}}
@media(max-width:400px){.page{width:calc(100% - 2rem)}.site-header{align-items:flex-start;flex-direction:column;gap:.7rem;padding:1.3rem 0}nav{gap:1.5rem}.intro-line{font-size:2.15rem}.writing{padding:1.5rem}.writing h3{font-size:2.1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
@media print{body{background:white}.page{width:100%}nav,.skip-link{display:none}.intro{padding:2rem 0}.section{break-inside:avoid}a{color:inherit}.button{background:none;color:var(--ink);border:1px solid var(--line)}}

.intro{position:relative}.botanical-mark{position:absolute;right:0;top:5.8rem;width:160px;height:auto;mix-blend-mode:multiply;opacity:.8}.writing{grid-template-columns:1fr;gap:1.7rem}.writing-body{display:grid;grid-template-columns:170px 1fr;gap:2.5rem;align-items:center}.book-cover{display:block;width:100%;height:auto;box-shadow:5px 9px 18px #263d3220}.book-copy{max-width:490px}.book-copy p{line-height:1.7}@media(max-width:760px){.botanical-mark{width:105px;top:3rem;opacity:.55}.intro .eyebrow{max-width:65%}.intro-line{position:relative}.writing-body{grid-template-columns:130px 1fr;gap:1.5rem}}@media(max-width:520px){.botanical-mark{width:75px;top:3rem}.writing-body{grid-template-columns:1fr}.book-cover{width:145px}.writing h3{font-size:2.1rem}}

.contact-links{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem}

.now-updated{margin:.4rem 0 0;font-size:.75rem;color:var(--muted)}.now-updated time{font-size:inherit}.now-list{margin:0}.now-list>div+div{margin-top:1.3rem}.now-list dt{font-size:.875rem;font-weight:600;margin-bottom:.3rem}.now-list dd{margin:0;color:var(--muted)}nav{flex-wrap:wrap;row-gap:.5rem}

.book-excerpt{border-top:1px solid #b7c3af}.book-excerpt summary{font-weight:600;min-height:48px}.excerpt-prose{max-width:65ch;margin:0 auto;padding:.5rem 0 1rem;font-family:Georgia,'Times New Roman',serif;font-size:1.0625rem;line-height:1.85}.writing .excerpt-prose p{color:var(--ink);margin:0;text-indent:1.5em}.excerpt-prose em{color:inherit}

/* A little field journal for current projects. */
.now h2{font-family:Georgia,'Times New Roman',serif;font-size:2rem;font-weight:400;letter-spacing:-.035em;line-height:1.2}
.now-list>div{position:relative;padding-left:3.25rem}
.now-list>div+div{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.now-list dt{font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;font-weight:400;line-height:1.3;letter-spacing:-.025em;margin-bottom:.5rem}
.now-icon{position:absolute;left:0;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;background:var(--sage);border-radius:50%;font-size:1.2rem;line-height:1;letter-spacing:normal}
@media(max-width:400px){.now-list>div{padding-left:2.9rem}.now-icon{width:2.1rem;height:2.1rem}}

/* Personal introduction and portrait. */
.intro{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:center;gap:2.5rem}
.intro-line{font-size:clamp(2.15rem,4.2vw,3.2rem)}
.intro-bottom{flex-direction:column;align-items:flex-start;gap:1.2rem}
.intro-photo{margin:0}.intro-photo img{display:block;width:100%;height:auto;border-radius:3px}.intro-photo figcaption{margin-top:.65rem;font-size:.875rem;color:var(--muted);font-family:Georgia,'Times New Roman',serif;font-style:italic}
@media(max-width:760px){.intro{grid-template-columns:1fr;gap:2rem}.intro .eyebrow{max-width:none}.intro-photo{width:min(100%,340px)}.intro-line{font-size:clamp(2.15rem,6vw,3.2rem)}}

.role-progression{margin:.35rem 0 0;font-size:.875rem;color:var(--muted)}

.education .job+.job{margin-top:1.75rem}
