*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#111;font-family:Georgia,'Times New Roman',serif;font-size:16px}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button{border:0;padding:0;background:none;cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:1px solid #555;outline-offset:5px}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:29px 26px 0;gap:25px}.wordmark{justify-self:start}.header nav{display:flex;align-items:center;gap:25px}.header nav button,select{color:#777}.header nav button:hover,select:hover{color:#111}select{appearance:none;border:0;border-radius:0;background:transparent;cursor:pointer;padding:0 2px;max-width:220px}.view-controls{display:flex;gap:23px;justify-self:end}.view-controls button{color:#888}.view-controls .active{color:#111}main{margin:52px 26px 70px}.gallery{display:flex;flex-direction:column;gap:72px}.gallery-row{display:flex;align-items:flex-start;gap:40px}.photo{margin:0;flex:none}.photo button{display:block;width:100%;height:100%}.photo img{display:block;width:100%;height:100%;object-fit:contain}.photo button:hover{opacity:.85}.photo button:focus-visible{outline-offset:7px}#empty{text-align:center;padding:60px 0;color:#777}dialog{color:#111;background:#fff;border:0}dialog::backdrop{background:#fffef9e8}#lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:30px 5%;overflow:hidden}#lightbox[open]{display:flex;align-items:center;justify-content:center}#full-image{max-width:88%;max-height:82%;object-fit:contain}.lightbox-top,.lightbox-caption{position:absolute;left:26px;right:26px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.lightbox-top{top:27px}.lightbox-caption{bottom:26px}.lightbox-caption span:last-child{color:#777}.arrow{position:absolute;top:46%;font-size:24px;padding:15px}.previous{left:0}.next{right:0}#about{width:min(500px,90vw);padding:65px 35px;min-height:230px}#about-close{position:absolute;top:20px;right:25px}#about h1{font:24px Georgia,serif;margin:0 0 25px}#about p{line-height:1.8;color:#666}#contact{text-decoration:underline}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}@media(max-width:700px){body{font-size:14px}.header{padding:23px 18px 0;gap:15px;grid-template-columns:auto 1fr auto}.header nav{justify-self:center;gap:15px}select{max-width:145px;font-size:13px}.view-controls{gap:13px}main{margin:38px 18px 45px}.gallery{gap:38px}.gallery-row{gap:20px}.lightbox-caption{font-size:12px}}@media(max-width:380px){.header nav{gap:10px}select{max-width:105px}.view-controls{gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Quiet motion and collection viewer */
.photo{opacity:0;transform:translateY(12px);transition:opacity .65s ease,transform .65s cubic-bezier(.22,.61,.36,1)}.photo.revealed{opacity:1;transform:translateY(0)}.photo button{transition:opacity .25s ease}.viewer-modes{display:flex;gap:12px}.viewer-modes button{color:#888}.viewer-modes .active{color:#111}#lightbox{background:transparent;padding:0}#lightbox::backdrop{background:rgb(255 255 255 / .68);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);animation:backdrop-in .35s ease both}#lightbox.closing::backdrop{animation:backdrop-out .26s ease both}#lightbox[open]{display:block}.lightbox-top{z-index:2;align-items:center}.lightbox-top>span,.lightbox-top>#viewer-home,.lightbox-top>#close-lightbox{flex:1}.lightbox-top>#close-lightbox{text-align:right}#slide-view{position:absolute;inset:74px 0 100px;display:flex;align-items:center;justify-content:center}#image-stage{display:flex;align-items:center;justify-content:center;width:78%;height:100%;overflow:hidden}#full-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.arrow{font-size:13px;top:calc(50% - 22px);padding:15px 26px;z-index:1}.lightbox-caption{bottom:25px;flex-direction:column;align-items:center;gap:4px;font-size:13px}.lightbox-caption span:last-child{margin-top:7px;font-size:11px;font-style:italic}#full-title{color:#777;font-size:11px}#series-grid{position:absolute;inset:90px 26px 115px;overflow-y:auto;display:flex;align-content:flex-start;align-items:flex-start;flex-wrap:wrap;gap:28px 22px;padding:5px}#series-grid button{height:145px;max-width:100%;flex:none}#series-grid img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain}#series-grid button:hover{opacity:.7}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}@keyframes backdrop-out{from{opacity:1}to{opacity:0}}@media(max-width:700px){#slide-view{inset:80px 0 110px}#image-stage{width:88%}.arrow{padding:12px;top:auto;bottom:-30px}.lightbox-top{left:18px;right:18px}.lightbox-caption{bottom:20px}#series-grid{inset:80px 13px 110px;gap:20px 12px}#series-grid button{height:90px}}@media(prefers-reduced-motion:reduce){.photo{opacity:1;transform:none;transition:none}.photo button{transition:none}#lightbox::backdrop,#lightbox.closing::backdrop{animation:none}}
.header nav .active{color:#111}.header nav button{white-space:nowrap;transition:color .2s}.photo{position:relative}.photo:focus-within,.photo:hover{z-index:3}.photo img{transition:transform .55s cubic-bezier(.22,.61,.36,1)}.photo button:hover{opacity:1}@media(hover:hover){.photo button:hover img{transform:scale(1.12)}}#image-stage{position:relative;display:grid;place-items:center}#image-stage img{grid-area:1 / 1;display:block;max-width:100%;max-height:100%;min-width:0;min-height:0;width:auto;height:auto;object-fit:contain}#image-stage .outgoing-image{pointer-events:none}#photography-view{position:relative}body.photography-active main{margin:20px 0 0}#photo-strip{display:flex;align-items:center;gap:22px;height:calc(100dvh - 155px);min-height:320px;overflow-x:auto;overflow-y:hidden;padding:20px 10vw;scrollbar-width:thin;scrollbar-color:#ccc transparent;overscroll-behavior-x:contain}.strip-photo{--photo-height:clamp(120px,25vh,240px);flex:0 0 auto;height:var(--photo-height);width:calc(var(--photo-height) * var(--ratio));max-width:82vw;margin:0;transition:height 1s cubic-bezier(.4,0,.2,1),width 1s cubic-bezier(.4,0,.2,1),opacity 1s cubic-bezier(.4,0,.2,1);opacity:.65}.strip-photo.active{--photo-height:calc(100dvh - 220px);opacity:1}.strip-photo button,.strip-photo img{display:block;width:100%;height:100%}.strip-photo img{object-fit:contain}.strip-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 26px 24px;font-size:12px}.strip-footer button:disabled{opacity:.3;cursor:default}#empty{min-height:50vh;align-content:center;color:#777}@media(max-width:900px){.header{grid-template-columns:auto 1fr;gap:18px}.header nav{justify-self:end;gap:16px;font-size:13px}.view-controls{grid-column:2;grid-row:2;font-size:12px}.header:has(.view-controls[hidden]){padding-bottom:12px}}@media(max-width:600px){.header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 12px}.header nav{order:3;width:100%;justify-content:space-between;gap:10px;font-size:12px}.view-controls{margin-left:auto}.strip-photo{--photo-height:150px}.strip-photo.active{--photo-height:calc(70dvh - 140px)}#photo-strip{height:calc(100dvh - 195px);min-height:280px;padding-left:8vw;padding-right:8vw;gap:15px}.strip-footer{padding:16px 18px}.photography-active .header nav{order:3}}@media(prefers-reduced-motion:reduce){.photo img,.strip-photo{transition:none}}

#about{width:min(720px,92vw);max-height:88dvh;overflow-y:auto;padding:65px 48px 48px}#bio{white-space:pre-line;font-size:16px;line-height:1.85} @media(max-width:600px){#about{padding:60px 25px 30px}#bio{font-size:14px;line-height:1.8}}

.about-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:30px;font-size:14px}.about-links a{text-decoration:underline;text-underline-offset:4px}.about-links a:hover{color:#777}

/* The backdrop itself gains blur gradually, alongside the photograph reveal. */
#lightbox::backdrop{background:rgb(255 255 255 / .60);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);animation:focus-backdrop-in 2000ms cubic-bezier(.4,0,.2,1) both}
#lightbox.closing::backdrop{animation:focus-backdrop-out var(--viewer-close-duration,650ms) cubic-bezier(.4,0,.2,1) both}
@keyframes focus-backdrop-in{from{background:rgb(255 255 255 / 0);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}to{background:rgb(255 255 255 / .60);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}}
@keyframes focus-backdrop-out{from{background:rgb(255 255 255 / .60);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}to{background:rgb(255 255 255 / 0);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}}
@media(prefers-reduced-motion:reduce){#lightbox::backdrop,#lightbox.closing::backdrop{animation:none}}

#series-grid{justify-content:center;align-content:safe center;align-items:center}

.photo{transition:opacity 1.1s cubic-bezier(.4,0,.2,1) var(--reveal-delay,0ms),transform 1.1s cubic-bezier(.4,0,.2,1) var(--reveal-delay,0ms)}
@media(prefers-reduced-motion:reduce){.photo{transition:none;opacity:1;transform:none}}
