@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600&family=Libre+Caslon+Display&display=swap');

:root{--paper:#f7f6f2;--ink:#292d29;--muted:#81847a;--line:#ddded5;--accent:#69715a;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border:0;background:none}button,a{touch-action:manipulation}[hidden]{display:none!important}.site-header,main,footer{max-width:1720px;margin:auto;padding-left:5%;padding-right:5%}.site-header{height:131px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:25px}.wordmark{font-family:var(--serif);font-size:30px;letter-spacing:-.9px;line-height:1.1}.wordmark>span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:2.8px;margin-top:12px;color:var(--muted)}nav{display:flex;align-items:center;gap:37px}.nav-link{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:9px}.nav-link.active{color:var(--ink)}.nav-dot{width:4px;height:4px;background:var(--accent);border-radius:50%}.view-toggle{width:40px;height:30px;border-left:1px solid var(--line);padding-left:21px;box-sizing:content-box}.view-toggle svg{width:16px;height:16px;stroke:var(--ink);stroke-width:1.2}.intro{padding:57px 0 39px}.eyebrow{font-size:9px;letter-spacing:2px;color:var(--accent);display:flex;align-items:center;gap:9px}.status-dot{height:5px;width:5px;border-radius:50%;background:var(--accent)}h1{font-family:var(--serif);font-size:clamp(48px,5.7vw,91px);font-weight:400;letter-spacing:-2.6px;line-height:1.04;margin:23px 0 23px}em{font-weight:400;color:var(--accent)}.intro-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px}.intro p{font-size:12px;color:#73776e;margin:0;line-height:1.6}.small-note,.collection-label{font-size:8px;letter-spacing:1.45px;color:var(--muted)}.collection-toolbar{border-top:1px solid var(--line);padding:23px 0;display:flex;justify-content:space-between;align-items:center;gap:15px}.filters{display:flex;align-items:center;gap:28px}.filter{font-size:11px;padding:0;color:var(--muted);white-space:nowrap;position:relative}.filter.active{color:var(--ink)}.filter.active:after{content:'';position:absolute;height:1px;background:var(--ink);left:0;right:0;bottom:-8px}.filter sup{font-size:8px;margin-left:4px;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 24px;align-items:start}.photo-card{margin:0;min-width:0}.photo-button{padding:0;display:block;width:100%;text-align:left;position:relative;overflow:hidden;background:#e2e3db}.photo-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.2,1),filter .6s}.photo-button:hover img{transform:scale(1.025);filter:brightness(.94)}.photo-button:after{content:'↗';position:absolute;right:18px;bottom:17px;color:#fff;font-size:22px;opacity:0;transform:translate(-5px,5px);transition:.25s}.photo-button:hover:after,.photo-button:focus-visible:after{opacity:1;transform:translate(0,0)}.photo-card.hero{grid-column:1/-1}.hero .photo-button{aspect-ratio:2.36}.photo-card.landscape .photo-button{aspect-ratio:1.23}.photo-card.portrait .photo-button{aspect-ratio:.83}.photo-card.wide{grid-column:span 2}.wide .photo-button{aspect-ratio:1.93}.photo-card figcaption{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-top:13px}.photo-name{font-family:var(--serif);font-size:21px;line-height:1.2}.photo-category{display:block;font-size:7px;letter-spacing:1.55px;margin-top:7px;color:var(--muted)}.photo-index{font-size:9px;color:var(--muted);padding-top:5px;font-variant-numeric:tabular-nums}.hero figcaption{padding-top:16px}.hero .photo-name{font-size:25px}.gallery.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery.compact .photo-card{grid-column:auto}.gallery.compact .photo-button{aspect-ratio:1.15}.gallery.filtered .photo-card{grid-column:auto}.gallery.filtered .photo-button{aspect-ratio:1.15}.collection-end{display:flex;align-items:center;justify-content:center;gap:21px;margin:67px auto 0;font-size:8px;color:var(--muted);letter-spacing:1.6px}.end-line{height:1px;width:48px;background:var(--line)}.closing{text-align:center;padding:87px 0 91px}.closing .eyebrow{justify-content:center;font-size:8px}.closing p{font-family:var(--serif);font-size:53px;line-height:1.08;letter-spacing:-.8px;margin:24px 0}.closing>a{font-size:11px;border-bottom:1px solid #b8bcae;padding-bottom:6px}.closing>a span{margin-left:20px}footer{min-height:103px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}footer>span{font-size:7px;letter-spacing:1.6px;color:var(--muted)}.footer-brand{font-family:var(--serif);font-size:20px}.footer-brand>span{font-family:var(--sans);font-size:8px;color:var(--muted);margin-left:16px}.back-to-top{font-size:10px;color:var(--muted)}.about-content{max-width:1000px;margin:80px auto 100px}.about-content h1{font-size:100px;margin:30px 0 60px}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:90px;border-top:1px solid var(--line);padding-top:35px}.about-columns p{line-height:1.9;color:#73776e;margin:0 0 20px}.about-columns .about-lead{font-family:var(--serif);font-size:31px;line-height:1.35;color:var(--ink)}.back-to-work{display:inline-block;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:7px;margin-top:15px}.back-to-work span{margin-left:20px}.sample-note{font-size:11px;line-height:1.9;color:var(--muted);max-width:570px;margin-top:70px;border-left:1px solid var(--line);padding-left:22px}dialog{border:0;background:#f7f6f2;color:var(--ink);width:100%;height:100%;max-width:100%;max-height:100%;padding:25px 4%;margin:0}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:var(--paper)}body:has(dialog[open]){overflow:hidden}.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;min-height:45px}.lightbox-brand{font-family:var(--serif);font-size:23px}#lightbox-count{font-size:10px;color:var(--muted)}#close-lightbox{font-size:12px;padding:10px 0 10px 10px}#close-lightbox span{font-size:25px;vertical-align:-2px;margin-left:15px}.lightbox-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0}.lightbox-stage img{height:100%;max-width:calc(100% - 110px);min-width:0;object-fit:contain}.photo-arrow{font-size:25px;padding:12px;flex-shrink:0}.lightbox-caption{text-align:center;flex-shrink:0;padding:6px 0 10px}.lightbox-caption h2{font-family:var(--serif);font-size:27px;font-weight:400;margin:0 0 8px}.lightbox-caption p{font-size:9px;letter-spacing:1.5px;color:var(--muted);margin:0 0 20px}.lightbox-caption>span{font-size:8px;letter-spacing:1.3px;color:var(--muted)}.image-error{display:flex;align-items:center;justify-content:center;min-height:220px;color:var(--muted)}
@media(min-width:1600px){.intro{padding-top:68px}.hero .photo-button{aspect-ratio:2.5}}@media(max-width:900px){.small-note,.collection-label{display:none}.gallery{gap:27px 17px}.filters{gap:22px}.photo-name{font-size:19px}.site-header{height:110px}.intro{padding-top:45px}.about-columns{gap:35px}.about-content h1{font-size:80px}footer>span{display:none}}@media(max-width:600px){.site-header,main,footer{padding-left:6%;padding-right:6%}.site-header{height:104px}.wordmark{font-size:24px;letter-spacing:-.7px}.wordmark>span{font-size:6px;letter-spacing:2px;margin-top:9px}nav{gap:18px}.nav-link{font-size:10px}.nav-dot{display:none}.view-toggle{display:none}.intro{padding-top:36px;padding-bottom:29px}.eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:49px;letter-spacing:-1.7px;margin:20px 0 17px;max-width:340px}.intro p{font-size:11px;max-width:260px}.collection-toolbar{padding:21px 0 24px}.filters{gap:20px;width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:9px;margin-bottom:-9px}.filter{font-size:10px}.filter sup{font-size:7px}.gallery,.gallery.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.hero .photo-button{aspect-ratio:1.25}.photo-card.portrait .photo-button,.photo-card.landscape .photo-button{aspect-ratio:.85}.photo-card.wide{grid-column:span 2}.wide .photo-button{aspect-ratio:1.5}.photo-card figcaption{padding-top:10px}.photo-name{font-size:18px}.photo-category{font-size:6px;letter-spacing:1px;margin-top:6px}.photo-index{font-size:8px}.hero .photo-name{font-size:23px}.gallery.filtered .photo-card{grid-column:auto}.gallery.filtered .photo-button{aspect-ratio:.85}.gallery .photo-card:last-child{grid-column:span 2}.gallery.filtered .photo-card:last-child,.gallery.compact .photo-card:last-child{grid-column:auto}.collection-end{font-size:6px;letter-spacing:1.2px;gap:12px;margin-top:45px}.end-line{width:22px}.closing{padding:65px 0}.closing p{font-size:43px}.closing .eyebrow{font-size:7px}footer{min-height:90px}.footer-brand{font-size:18px}.footer-brand>span{display:block;margin:6px 0 0;font-size:7px}.back-to-top{font-size:9px}.about-content{margin:45px auto 65px}.about-content h1{font-size:66px;margin-bottom:35px}.about-columns{grid-template-columns:1fr;gap:20px}.about-columns .about-lead{font-size:28px}.sample-note{margin-top:40px}.lightbox-brand{font-size:19px}dialog{padding:15px 4%}.lightbox-stage{gap:0;position:relative;justify-content:center}.lightbox-stage img{max-width:100%;width:100%}.photo-arrow{position:absolute;bottom:10px;background:var(--paper);font-size:20px;z-index:1}#previous-photo{left:0}#next-photo{right:0}.lightbox-caption>span{font-size:6px}.lightbox-caption h2{font-size:24px}}
.gallery:not(.compact):not(.filtered) .photo-card.original .photo-button{aspect-ratio:auto}.gallery:not(.compact):not(.filtered) .photo-card.original .photo-button img{height:auto}.wordmark{display:flex;align-items:center;gap:13px;flex-shrink:0}.wordmark-icon{width:62px;height:62px;display:block;object-fit:contain;flex-shrink:0}.wordmark-copy{white-space:nowrap}.wordmark-copy>span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:2.8px;margin-top:12px;color:var(--muted)}
@media(max-width:600px){.site-header{gap:12px}.wordmark{font-size:22px;gap:7px}.wordmark-icon{width:40px;height:40px}.wordmark-copy>span{font-size:6px;letter-spacing:1.8px;margin-top:9px}nav{gap:14px}}
@media(max-width:380px){.site-header{gap:8px}.wordmark{font-size:20px;gap:6px}.wordmark-icon{width:34px;height:34px}.wordmark-copy>span{font-size:5px;letter-spacing:1.6px}nav{gap:12px}.nav-link{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.gallery-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted,#777)}
/* On phones, photographs read as a full-width sequence in every gallery mode. */
@media(max-width:700px){
  .gallery,.gallery.compact,.gallery.filtered{grid-template-columns:minmax(0,1fr);gap:30px}
  .gallery .photo-card,.gallery .photo-card:last-child,.gallery.compact .photo-card,.gallery.filtered .photo-card{grid-column:1/-1}
  .gallery .photo-card .photo-button,.gallery.compact .photo-button,.gallery.filtered .photo-button{aspect-ratio:auto}
  .gallery .photo-card .photo-button img{width:100%;height:auto;object-fit:contain}
  .photo-button:hover img{transform:none;filter:none}
  .photo-button:after{opacity:1;transform:none;right:12px;bottom:10px;text-shadow:0 1px 5px #0008}
  .photo-name,.hero .photo-name{font-size:23px}
  .photo-category{font-size:9px;line-height:1.6}
  .filters{flex-wrap:wrap;gap:2px 20px;overflow:visible;padding:0;margin:0}
  .filter{font-size:12px;min-height:44px}
  .filter.active:after{bottom:5px}
  .collection-toolbar{padding:12px 0 20px}
  dialog{height:100vh;height:100dvh;padding:12px 4%;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .lightbox-top{gap:10px}
  .lightbox-brand{font-size:17px}
  #close-lightbox{min-width:44px;min-height:44px}
  #close-lightbox span{margin-left:6px}
  .lightbox-stage{position:relative;justify-content:center;gap:0;padding:10px 0 56px}
  .lightbox-stage img{display:block;max-width:100%;width:100%;height:100%;object-fit:contain}
  .photo-arrow{position:absolute;bottom:0;min-width:48px;min-height:48px;padding:10px;background:var(--paper);font-size:24px;z-index:1}
  #previous-photo{left:0}#next-photo{right:0}
  .lightbox-caption h2{font-size:23px;overflow-wrap:anywhere}
  .lightbox-caption p{font-size:8px;line-height:1.6;margin-bottom:8px}
  .lightbox-caption>span{font-size:8px;letter-spacing:.6px}
}
@media(max-width:600px){
  .site-header{height:auto;min-height:104px;flex-wrap:wrap;padding-top:18px;padding-bottom:16px;gap:16px}
  .intro{padding-top:28px}
  .site-header,main,footer{padding-left:16px;padding-right:16px}
}
.photo-button:after{display:none}
#toggle-fullscreen{font-size:11px;min-height:44px;padding:8px;white-space:nowrap}
#lightbox.immersive{background:#111;color:#fff;padding:0;height:100vh;height:100dvh;width:100%;overflow:hidden}
#lightbox.immersive .lightbox-top{position:absolute;inset:0 0 auto;z-index:3;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:linear-gradient(#0009,transparent);gap:12px}
#lightbox.immersive .lightbox-brand{display:none}
#lightbox.immersive #lightbox-count{color:#fff;margin-right:auto;font-size:12px}
#lightbox.immersive #close-lightbox{color:#fff;min-height:44px;min-width:44px}
#lightbox.immersive .lightbox-stage{position:absolute;inset:0;padding:0;display:flex;align-items:center;justify-content:center;gap:0}
#lightbox.immersive .lightbox-stage img{width:100%;height:100%;max-width:100%;object-fit:contain}
#lightbox.immersive .photo-arrow{position:absolute;top:50%;bottom:auto;transform:translateY(-50%);width:48px;height:56px;padding:8px;background:#0006;color:#fff;border-radius:4px;z-index:2}
#lightbox.immersive #previous-photo{left:max(8px,env(safe-area-inset-left))}#lightbox.immersive #next-photo{right:max(8px,env(safe-area-inset-right))}
#lightbox.immersive .lightbox-caption{position:absolute;inset:auto 0 0;z-index:1;padding:30px 20px max(14px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#0009);pointer-events:none}
#lightbox.immersive .lightbox-caption h2{font-size:23px;margin-bottom:5px}#lightbox.immersive .lightbox-caption p{color:#ddd;margin-bottom:0}#lightbox.immersive .lightbox-caption>span{display:none}
@media(max-width:700px){.lightbox-top{flex-wrap:wrap}.lightbox-brand{font-size:15px}#toggle-fullscreen{font-size:10px;padding:6px}#lightbox.immersive .lightbox-top{flex-wrap:nowrap}}

/* The photography collection begins directly below the site navigation. */
#work-page .collection-toolbar{border-top:0}

.wordmark-copy>.wordmark-tagline{font-family:var(--serif);font-size:17px;font-weight:400;letter-spacing:0;line-height:1.3;margin-top:7px;color:var(--muted)}
.wordmark-tagline em{color:var(--accent)}
@media(max-width:600px){.wordmark-copy>.wordmark-tagline{font-size:13px;letter-spacing:0;margin-top:5px}}
@media(max-width:380px){.wordmark-copy>.wordmark-tagline{font-size:12px}}

/* Quiet, image-first homepage: two photographs per row, with no overlays or captions. */
#work-page{max-width:none;padding-left:2.5%;padding-right:2.5%;padding-bottom:56px}
#gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px)}
#gallery .photo-card,#gallery .photo-card:last-child{grid-column:auto}
#gallery .photo-button{aspect-ratio:auto;background:transparent}
#gallery .photo-button img{height:auto;object-fit:contain}
#gallery .photo-button:hover img{transform:none;filter:none}
#work-page .collection-toolbar{padding:24px 0 30px}
@media(max-width:700px){
  #work-page{padding-left:16px;padding-right:16px;padding-bottom:36px}
  #gallery{grid-template-columns:minmax(0,1fr);gap:24px}
  #work-page .collection-toolbar{padding:12px 0 20px}
}
