:root{--paper:#f3f2ed;--ink:#20211f;--line:#d2d3ca;--accent:#d7f15b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #688400;outline-offset:5px}header{display:flex;align-items:center;justify-content:space-between;padding:28px 4%;border-bottom:1px solid var(--line)}.logo{font-size:30px;font-weight:700;letter-spacing:-1.6px}.logo span{font-size:12px;vertical-align:top;margin-left:5px}nav{display:flex;gap:30px;align-items:center;font-size:14px}.contact{border:1px solid var(--ink);border-radius:30px;padding:12px 20px}main{padding:0 4%}.intro{padding:44px 0 65px}.eyebrow{display:flex;justify-content:space-between;font:11px monospace;letter-spacing:1px;line-height:1.6}h1{font-size:clamp(64px,8.5vw,140px);letter-spacing:-.075em;line-height:.98;font-weight:500;margin:54px 0 40px}h1 span{color:#777b6e}.intro-bottom{display:flex;align-items:end;justify-content:space-between}.intro-bottom p{max-width:460px;font-size:18px;line-height:1.55;margin:0}.muted{color:#777b6e}.circle{display:grid;place-items:center;background:var(--accent);width:60px;height:60px;border-radius:50%;font-size:30px}.section-top{border-top:1px solid var(--ink);display:flex;justify-content:space-between;align-items:center;padding:24px 0}h2{font-weight:500;font-size:26px;letter-spacing:-1px;margin:0}sup{font:11px monospace;vertical-align:top;letter-spacing:0;margin-left:8px}.filters{display:flex;gap:5px}.filters button{border:0;background:none;padding:10px 15px;border-radius:25px;font-size:13px}.filters button[aria-pressed=true]{background:var(--ink);color:white}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px}.card:first-child{grid-column:1/-1}.cover{overflow:hidden;background:#d9dbd2;aspect-ratio:1.55;position:relative}.card:first-child .cover{aspect-ratio:2.2}.cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.card:hover img{transform:scale(1.025)}.cover .arrow{position:absolute;bottom:20px;right:20px;background:var(--paper);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:23px}.caption{display:flex;justify-content:space-between;padding:16px 0;gap:20px}.caption h3{font-size:22px;font-weight:500;letter-spacing:-.6px;margin:0}.caption small{font:11px monospace;text-transform:uppercase;padding-top:5px;color:#666b5d}.type-cover{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:35px;background:#303b32;color:#e3edc4;font-size:clamp(25px,4vw,60px);letter-spacing:-2px}.type-cover small{font:11px monospace;letter-spacing:1px}.more{width:100%;background:none;border:1px solid var(--line);padding:22px;text-align:left;margin:20px 0 80px}.more span{float:right}#about{padding:55px 0 80px;border-top:1px solid var(--ink)}.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;margin-top:35px}.about-grid h2{font-size:clamp(32px,3.8vw,58px);line-height:1.14;letter-spacing:-2px}.about-grid em{font-family:Georgia,serif;font-weight:400}.about-grid p{font-size:17px;line-height:1.65;margin:0 0 20px}.about-grid a{border-bottom:1px solid;padding-bottom:5px}.outro{background:var(--accent);padding:40px;margin-bottom:60px}.outro>a{display:block;font-size:clamp(40px,6.8vw,100px);letter-spacing:-.065em;line-height:1.03;margin-top:35px}.outro>a span{float:right}footer{padding:30px 4%;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:12px}footer>div{display:flex;gap:25px}#detail{padding-top:45px}.back{font:12px monospace}.detail-title{font-size:clamp(45px,6vw,90px);line-height:1.05;letter-spacing:-.06em;margin:40px 0}.detail-copy{max-width:800px;white-space:pre-line;font-size:17px;line-height:1.7;margin:30px 0 50px}.detail-media{display:grid;gap:22px}.detail-media img{width:100%;display:block}.photo-button{border:0;padding:0;background:none;cursor:zoom-in}.video{width:100%;aspect-ratio:16/9;border:0;background:#151515}.detail-end{padding:50px 0;display:flex;justify-content:space-between}.skip{position:absolute;top:-80px;background:white;padding:15px}.skip:focus{top:0}dialog{border:0;background:#171916;color:white;max-width:100vw;width:100vw;height:100dvh;max-height:100dvh;padding:45px}dialog::backdrop{background:#171916}dialog img{width:100%;height:calc(100% - 45px);object-fit:contain}dialog button{position:absolute;border:0;border-radius:50%;padding:13px;background:white}.close{right:15px;top:10px}.prev{left:15px;top:50%}.next{right:15px;top:50%}dialog p{text-align:center;font:12px monospace}[hidden]{display:none!important}@media(max-width:650px){header{padding:22px 5%}.logo{font-size:25px}nav{gap:16px;font-size:12px}nav .contact{display:none}main{padding:0 5%}.intro{padding:28px 0 45px}.eyebrow{font-size:9px}.intro>.eyebrow span:last-child{display:none}h1{margin:40px 0 28px;font-size:64px}.intro-bottom p{max-width:280px;font-size:15px}.circle{width:45px;height:45px;flex-shrink:0}.section-top{align-items:start;gap:20px;flex-direction:column}.filters button{padding:9px 14px}.grid{gap:22px;grid-template-columns:1fr}.card:first-child .cover,.cover{aspect-ratio:1.35}.caption h3{font-size:19px}.caption small{font-size:9px}.about-grid{grid-template-columns:1fr;gap:30px}.about-grid h2{font-size:39px}.outro{padding:25px}.outro>a{font-size:45px}footer{align-items:start;gap:20px;flex-wrap:wrap}footer>span{display:none}footer>div{gap:16px;font-size:11px}.more{margin-bottom:50px}dialog{padding:50px 12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px}.about-page{padding:44px 0 70px}.about-page h1{margin-bottom:65px}.about-story{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}.about-story figure{margin:0}.about-story img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:48% center;display:block}.about-story figcaption{font:11px/1.6 monospace;color:#626657;margin-top:14px;max-width:320px}.about-copy h2{font-size:clamp(36px,4vw,60px);letter-spacing:-2px;line-height:1.08;margin:0 0 28px}.about-copy em{font-family:Georgia,serif;font-weight:400}.about-copy p{font-size:17px;line-height:1.7;margin:0 0 22px;max-width:570px}.about-copy .about-lead{font-size:20px;line-height:1.5}.text-link{display:inline-block;border-bottom:1px solid;padding:4px 0;font-size:15px}.about-notes{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:6%;margin-top:80px;padding-top:30px;border-top:1px solid var(--ink)}.about-notes p{font-size:19px;line-height:1.65;margin:20px 0}.about-linkedin{display:block;margin-top:20px;font-size:13px}.about-notes>div:last-child{background:var(--accent);padding:25px;margin-top:-5px}.about-notes>div:last-child .text-link{overflow-wrap:anywhere}@media(max-width:700px){.about-page{padding-top:30px}.about-page h1{font-size:clamp(44px,10vw,70px);margin:35px 0}.about-page>.eyebrow{gap:20px}.about-story{grid-template-columns:1fr;gap:40px}.about-story img{aspect-ratio:1.15;object-position:center 45%}.about-copy h2{font-size:42px}.about-notes{grid-template-columns:1fr;gap:30px;margin-top:50px}.about-notes>div{border-bottom:1px solid var(--line);padding-bottom:20px}.about-notes>div:last-child{margin:0}.about-copy p{font-size:16px}}
.intro-about{font-size:14px;border-bottom:1px solid;padding-bottom:6px}.experience-line{display:flex;gap:22px;margin-top:35px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:#5b6053}.project-role{font:11px/1.7 monospace;color:#555e49;margin:0 0 10px}.project-summary{font-size:16px;line-height:1.6;max-width:620px;margin:0}.grid .card{padding-bottom:22px}.archive{margin:55px 0 90px;border-block:1px solid var(--ink)}.archive summary{padding:25px 0;cursor:pointer;font-size:20px;list-style:none}.archive summary span{float:right}.archive[open] summary span{transform:rotate(45deg)}.archive-list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;padding-bottom:25px}.archive-list a{padding:17px 0;border-top:1px solid var(--line);font-size:15px}.archive-list span{float:right}.photo-site{background:#faf9f5}.photo-intro{padding:80px 0 100px;max-width:900px;margin:auto}.photo-intro h1{font:normal clamp(55px,7vw,105px)/1.05 Georgia,serif;letter-spacing:-4px;margin:30px 0}.photo-intro h1 em{color:#777b6e}.photo-intro p{font-size:16px;line-height:1.8;color:#555}.photo-index{max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:100px 9%;align-items:start}.photo-index .card:first-child{grid-column:1/-1}.photo-index .card:nth-child(3){margin-top:150px}.photo-index .card:last-child{grid-column:1/-1;width:85%;margin:20px auto 0}.photo-site .cover,.photo-site .card:first-child .cover{aspect-ratio:auto;background:none}.photo-site .cover img{display:block;width:100%;height:auto;object-fit:contain}.photo-site .card:hover img{transform:none}.photo-site .caption h3{font-family:Georgia,serif;font-size:25px}.photo-contact{text-align:center;padding:110px 0;font-size:15px}.photo-contact p{color:#686c61;font:11px monospace;text-transform:uppercase;letter-spacing:1px}.project-page{padding-top:45px}.project-facts{display:flex;gap:70px;border-block:1px solid var(--line);padding:22px 0}.project-facts p{margin:10px 0 0;line-height:1.5}.project-deck{font-size:clamp(22px,2.4vw,34px);line-height:1.45;max-width:900px;margin:35px 0}.project-narrative{max-width:800px;line-height:1.8;font-size:17px;margin:30px 0}.project-narrative p{white-space:pre-line}.credits{max-width:800px;margin:20px 0 45px;border-block:1px solid var(--line);padding:18px 0}.credits summary{cursor:pointer}.credits>div{white-space:pre-line;line-height:1.8;font-size:14px;margin-top:20px}.film>a{display:inline-block;font:11px monospace;margin:12px 0 25px}.photo-site .detail-media{max-width:1100px;margin:60px auto;gap:80px}.photo-site .detail-title{font-family:Georgia,serif;font-weight:400}.photo-site .photo-button{width:100%}.photo-site .photo-button img{max-height:90vh;object-fit:contain}.photo-site .detail-end{margin-top:70px}.photo-site .project-page{max-width:1250px;margin:auto}@media(max-width:650px){.intro-bottom{align-items:start;gap:25px;flex-direction:column}.experience-line{gap:12px;flex-wrap:wrap;font-size:11px}.archive-list{grid-template-columns:1fr}.section-top>.eyebrow{font-size:9px}.photo-intro{padding:45px 0 60px}.photo-intro h1{font-size:57px;letter-spacing:-3px}.photo-intro p{font-size:15px}.photo-index{display:block}.photo-index .card{margin:0 0 55px!important;width:100%!important}.photo-contact{padding:35px 0 70px}.project-facts{gap:25px;flex-direction:column}.project-narrative{font-size:16px}.photo-site .detail-media{gap:40px}.project-page .detail-title{font-size:44px}.photo-site .detail-title{font-size:48px}}
/* Keep the photography section within the site's shared type system. */
.photo-intro h1{font-family:Arial,Helvetica,sans-serif;font-weight:500;font-size:clamp(64px,8.5vw,140px);line-height:.98;letter-spacing:-.075em}
.photo-intro h1 em{font-family:inherit;font-style:normal;font-weight:inherit}
.photo-site .caption h3{font-family:Arial,Helvetica,sans-serif;font-size:22px;font-weight:500;letter-spacing:-.6px}
.photo-site .detail-title{font-family:Arial,Helvetica,sans-serif;font-weight:500}
@media(max-width:650px){.photo-intro h1{font-size:64px;letter-spacing:-.075em}.photo-site .caption h3{font-size:19px}.photo-site .detail-title{font-size:44px}}
/* Align photography text and imagery to one shared content width. */
.photo-intro,.photo-index,.photo-contact,.photo-site .project-page{width:100%;max-width:1100px;margin-left:auto;margin-right:auto}
.photo-index{column-gap:40px;row-gap:70px}
.photo-index .card:last-child{width:100%;margin:0;grid-column:1/-1}
.photo-index .card:nth-child(3){margin-top:0}
.photo-index .caption{align-items:baseline}
.photo-contact{text-align:left}
.photo-site .detail-media{width:100%;margin-left:0;margin-right:0}
@media(max-width:650px){.photo-index .card{width:100%!important;margin:0 0 55px!important}}

/* Two-tone wordmark, using the same colours as the headline. */
.logo .logo-first,.logo .logo-last{font-size:inherit;vertical-align:baseline;margin-left:0;letter-spacing:inherit}
.logo .logo-first{color:var(--ink)}
.logo .logo-last{color:#777b6e}
.logo .logo-mark{color:#777b6e}
/* Anchor the wordmark dot beside the name rather than above it. */
.logo .logo-mark{display:inline-block;font-size:.22em;line-height:1;vertical-align:baseline;margin-left:.12em;letter-spacing:0;color:#777b6e;transform:none}

/* Use a true semibold face for a lighter wordmark. */
.logo{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:550}


.more-work{margin:32px 0 48px;border-block:1px solid var(--line);padding:20px 0}.more-work summary{cursor:pointer;font-size:16px}.more-work[open]>div{margin-top:24px}.more-work .case-films{margin-bottom:0}@media(max-width:700px){.intro{padding:28px 0 38px}.intro h1{font-size:clamp(42px,12vw,56px);margin:30px 0 26px;line-height:1.02}.intro-bottom p{font-size:16px;line-height:1.5}.intro-bottom{gap:20px}.experience-line{margin-top:24px;padding-top:18px}.photo-intro{padding:30px 0 38px}.photo-intro h1{font-size:clamp(42px,12vw,56px);margin:24px 0}.photo-intro p{line-height:1.65}.more-work{margin:24px 0 32px}}

/* Consistent lightbox controls, independent of text font metrics. */
#lightbox button{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;line-height:1;color:#20211f;background:#fff;z-index:2;flex-shrink:0}#lightbox button svg{display:block;width:24px;height:24px;flex:none}#lightbox .prev,#lightbox .next{transform:translateY(-50%)}#lightbox button:hover{background:#e7e8df}#lightbox button:focus-visible{outline:3px solid #d7f15b;outline-offset:4px}

.casual-contact a{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.outro .casual-contact{font-size:clamp(22px,3vw,38px);line-height:1.4;letter-spacing:-.025em;max-width:1000px;margin:4px 0 0}.about-notes .casual-contact{font-size:17px;line-height:1.65;margin-bottom:0}
