@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin-variable.woff2)format("woff2-variations");font-style:normal;font-weight:300 500;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-latin-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-latin-semibold.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-medium.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}:root{--paper:#f5f6f1;--ink:#20261f;--conifer:#33523b;--moss:#5c6355;--hairline:#d9ddd0;--content:72rem;--measure:65ch;--section-space:clamp(4rem, 9vw, 7rem);--gutter:clamp(1.25rem, 4vw, 2.5rem);color-scheme:light;font-synthesis:none}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth;font-family:Public Sans,Arial,sans-serif;font-size:17px;line-height:1.65}body{background:var(--paper);min-width:320px;margin:0}body,button,input,textarea{font-family:Public Sans,Arial,sans-serif}img,picture{max-width:100%;display:block}img{border-radius:2px;height:auto}a{color:var(--conifer);text-underline-offset:.2em;transition:color .15s,opacity .15s}a:hover{color:var(--ink)}button,input,textarea{font-size:1rem}button,input,textarea,a{border-radius:0}:focus-visible{outline:2px solid var(--conifer);outline-offset:2px}h1,h2,h3,p{margin-block-start:0}h1,h2,.wordmark{font-family:Fraunces,Georgia,serif}h1{font-variation-settings:"opsz" 72;letter-spacing:-.01em;max-width:18ch;margin-block-end:1.5rem;font-size:clamp(2.4rem,5vw,3.5rem);font-weight:300;line-height:1.12}h2{font-variation-settings:"opsz" 48;letter-spacing:-.01em;margin-block-end:1.5rem;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:300;line-height:1.18}h3{font-size:1rem;line-height:1.4}p{max-width:var(--measure);margin-block-end:1.25rem}ul{padding-inline-start:1.25rem}.container{width:min(100% - 2 * var(--gutter), var(--content));margin-inline:auto}.prose{max-width:var(--measure)}.eyebrow,.section-label,.mono,.placeholder-label{letter-spacing:.07em;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;line-height:1.5}.eyebrow,.section-label{color:var(--moss);text-transform:uppercase;font-weight:500}.section-heading{align-items:center;gap:1rem;margin-block-end:2rem;display:flex}.section-heading:after{background:var(--hairline);content:"";flex:1;height:1px}.page-header{border-bottom:1px solid var(--hairline);padding-block:clamp(3.5rem,8vw,6rem) 3rem}.page-header p{color:var(--moss)}.skip-link{z-index:10;background:var(--paper);border:1px solid var(--ink);padding:.5rem .75rem;position:absolute;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--hairline)}.header-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:5rem;display:flex}.wordmark{color:var(--ink);font-variation-settings:"opsz" 24;white-space:nowrap;font-size:1.2rem;font-weight:500;line-height:1;text-decoration:none}.site-nav{gap:clamp(1rem,3vw,2rem);display:flex}.site-nav a{color:var(--ink);letter-spacing:.07em;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;text-decoration:none}.site-nav a[aria-current=page]{text-underline-offset:4px;text-decoration:underline 1px}.site-nav a:hover{color:var(--conifer);text-underline-offset:4px;text-decoration:underline}.site-footer{margin-block-start:var(--section-space)}.footer-inner{border-top:1px solid var(--hairline);color:var(--moss);letter-spacing:.04em;grid-template-columns:1fr auto;gap:2rem;padding-block:2rem 3rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;line-height:1.7;display:grid}.footer-links{flex-wrap:wrap;align-items:flex-start;gap:.5rem 1.25rem;display:flex}.footer-links a{overflow-wrap:anywhere}.footer-meta{text-align:right}.footer-meta p{margin:0}.placeholder{background:var(--conifer);min-height:18rem;color:var(--paper);place-items:center;padding:1rem;display:grid}.placeholder--hero{min-height:clamp(24rem,55vw,38rem)}.placeholder-label{text-align:center;text-transform:uppercase;max-width:24ch}.title-block{border-top:2px solid var(--ink);letter-spacing:.04em;padding-block-start:.5rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;line-height:1.55}.title-block p{margin:0}.title-block__name{color:var(--ink);letter-spacing:.07em;text-transform:uppercase;font-weight:500}.title-block__meta,.title-block__credit{color:var(--moss)}.project-card{min-width:0}.project-card>a{color:inherit;text-decoration:none;display:block}.project-card__image{background:var(--conifer);margin-block-end:1rem;overflow:hidden}.project-card__image img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:opacity .15s}.project-card>a:hover img{opacity:.88}.project-card>a:hover .title-block__name{color:var(--conifer)}.hero{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(2rem,7vw,6rem);padding-block:clamp(3rem,8vw,6rem);display:grid}.hero .eyebrow{margin-block-end:1.5rem}.hero__support{max-width:43ch;color:var(--moss)}.selected-work{padding-block-start:1rem}.selected-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,7vw,6rem) clamp(1.5rem,4vw,3rem);display:grid}.selected-grid .project-card:first-child{grid-column:1/-1;width:min(100%,50rem)}.about-strip{border-block:1px solid var(--hairline);grid-template-columns:minmax(0,2fr) minmax(12rem,1fr);gap:clamp(2rem,8vw,8rem);margin-block-start:var(--section-space);padding-block:clamp(2.5rem,6vw,4rem);display:grid}.about-strip p{max-width:58ch}.about-links{letter-spacing:.04em;flex-direction:column;align-items:flex-start;gap:.75rem;padding-block-start:.25rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;display:flex}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(3rem,7vw,6rem) clamp(1.5rem,4vw,3rem);padding-block-start:clamp(3rem,7vw,5rem);display:grid}.project-header{padding-block:clamp(3rem,7vw,5rem)}.project-header .title-block{margin-block-end:2rem}.project-summary{font-size:1.15rem}.project-body{max-width:var(--measure);padding-block-end:clamp(2rem,5vw,4rem)}.media-list{gap:clamp(3rem,8vw,6rem);display:grid}.media-item{margin:0}.media-link{margin-block-end:1rem;display:block}.media-link img{width:100%}.media-link--sheet img{border:1px solid var(--hairline)}.project-pagination{border-top:1px solid var(--hairline);letter-spacing:.04em;grid-template-columns:1fr 1fr;gap:1rem;padding-block-start:clamp(3rem,7vw,5rem);font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;display:grid}.project-pagination a:last-child{text-align:right}dialog{border:1px solid var(--ink);background:var(--paper);width:min(96vw,90rem);max-width:none;max-height:94vh;color:var(--ink);padding:2.75rem 1rem 1rem}dialog::backdrop{background:#20261fd6}.lightbox__close{color:var(--ink);cursor:pointer;letter-spacing:.07em;text-underline-offset:.2em;background:0 0;border:0;padding:.25rem 0;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;text-decoration:underline;position:absolute;top:.5rem;right:.75rem}.lightbox__image{object-fit:contain;width:100%;max-height:calc(94vh - 4.5rem)}.resume{padding-block:clamp(3rem,7vw,5rem)}.resume-heading{border-bottom:2px solid var(--ink);grid-template-columns:1fr auto;align-items:end;gap:2rem;padding-block-end:2rem;display:grid}.resume-heading h1{margin-block-end:.5rem}.resume-heading p{color:var(--moss);margin:0}.text-button{border:1px solid var(--ink);color:var(--ink);letter-spacing:.04em;padding:.55rem .85rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;text-decoration:none;display:inline-block}.text-button:hover{border-color:var(--conifer);color:var(--conifer)}.resume-section{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(7rem,.7fr) minmax(0,3fr);gap:clamp(1.5rem,5vw,4rem);padding-block:2rem;display:grid}.resume-section>h2{color:var(--moss);letter-spacing:.07em;text-transform:uppercase;margin:0;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;font-weight:500;line-height:1.5}.resume-entry+.resume-entry{margin-block-start:2rem}.resume-entry__heading{grid-template-columns:minmax(0,1fr) auto;gap:1rem;margin-block-end:.75rem;display:grid}.resume-entry__heading h3,.resume-entry__heading p{margin:0}.resume-entry__date{color:var(--moss);letter-spacing:.04em;white-space:nowrap;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem}.resume-entry ul{margin-block:0}.resume-entry li+li{margin-block-start:.5rem}.resume-list{margin:0;padding:0;list-style:none}.contact-layout{grid-template-columns:minmax(13rem,1fr) minmax(0,2fr);gap:clamp(3rem,9vw,8rem);padding-block:clamp(3rem,7vw,5rem);display:grid}.contact-details{letter-spacing:.04em;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem}.contact-details a{overflow-wrap:anywhere}.contact-form{gap:1.5rem;display:grid}.field{gap:.4rem;display:grid}.field label{color:var(--ink);letter-spacing:.07em;text-transform:uppercase;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;font-weight:500}.field input,.field textarea{border:1px solid var(--moss);width:100%;color:var(--ink);background:0 0;padding:.7rem .75rem}.field textarea{resize:vertical;min-height:10rem}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--ink);border-width:2px}.field-error{min-height:1.5em;color:var(--ink);margin:0;font-size:.85rem}.botcheck{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-submit{border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;letter-spacing:.07em;text-transform:uppercase;justify-self:start;padding:.65rem 1rem;font-family:IBM Plex Mono,Courier New,monospace;font-size:.705rem;font-weight:500}.form-submit:hover{background:var(--conifer);border-color:var(--conifer)}.form-submit:disabled{cursor:wait;opacity:.65}.form-status{min-height:1.65em;margin:0}.quiet-page{min-height:50vh;padding-block:clamp(4rem,10vw,8rem)}@media (width<=700px){html{font-size:16px}.header-inner{min-height:4.5rem}.site-nav{gap:.9rem}.hero,.about-strip,.contact-layout{grid-template-columns:1fr}.hero__copy{padding-block-start:1rem}.selected-grid,.work-grid{grid-template-columns:1fr}.selected-grid .project-card:first-child{grid-column:auto;width:auto}.footer-inner{grid-template-columns:1fr}.footer-meta{text-align:left}.resume-section{grid-template-columns:1fr;gap:1rem}.resume-entry__heading{grid-template-columns:1fr;gap:.25rem}.resume-entry__date{white-space:normal}}@media (width<=390px){.wordmark{font-size:1.05rem}.site-nav{gap:.65rem}.site-nav a{letter-spacing:.035em}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media print{@page{size:letter;margin:.42in .5in}html{color:#000;background:#fff;font-size:9.5px;line-height:1.35}body{background:#fff}.skip-link,.site-header,.site-footer,.resume-heading .text-button{display:none}.container{width:100%}.resume{padding:0}.resume-heading{padding-block-end:.12in}.resume-heading h1{font-size:23px}.resume-section{break-inside:avoid;grid-template-columns:.8in 1fr;gap:.18in;padding-block:.1in}.resume-entry+.resume-entry{margin-block-start:.1in}.resume-entry__heading{margin-block-end:.04in}.resume-entry ul{margin-block:0}.resume-entry li+li{margin-block-start:.02in}.resume-section>h2,.resume-entry__date{color:#000;font-size:8px}a{color:#000;text-decoration:none}}
