
/* Top back control: the anchor itself owns the complete visible hit area. */
.photo-back{
  box-sizing:border-box;
  position:relative;
  z-index:20;
  display:flex;
  width:fit-content;
  min-width:88px;
  min-height:48px;
  align-items:center;
  justify-content:center;
  margin:0 0 28px;
  padding:12px 16px;
  border-radius:2px;
  background:rgba(250,249,245,.92);
  color:var(--ink);
  text-decoration:none;
  font:.57rem/1 var(--mono);
  letter-spacing:.04em;
  cursor:pointer;
  pointer-events:auto;
  touch-action:manipulation;
  box-shadow:0 1px 0 rgba(23,24,20,.08);
  transition:background .16s,color .16s,transform .16s,box-shadow .16s;
}
.photo-back:hover,.photo-back:focus-visible{
  color:var(--accent);
  background:#fff;
  transform:translateX(-2px);
  box-shadow:0 1px 0 rgba(23,24,20,.08),0 0 0 2px rgba(214,92,47,.12);
  outline:none;
}
.photo-back:active{transform:translateX(-1px) translateY(1px);}
.photo-shell{width:min(calc(100% - 20px),1240px);margin-inline:auto;padding:28px 0 50px}
.photo-header{display:grid;gap:24px}
.photo-home{width:max-content;min-height:48px;display:inline-flex;align-items:center;gap:10px;padding:7px 12px 7px 7px;color:var(--ink);text-decoration:none;background:rgba(250,249,245,.82);box-shadow:0 1px 0 rgba(23,24,20,.08);font:.56rem/1.15 var(--mono);transition:background .16s,color .16s,transform .16s}
.photo-home-arrow{width:34px;height:34px;display:grid;place-items:center;border-radius:999px;background:var(--ink);color:var(--paper);font:1rem/1 var(--mono)}
.photo-home span:last-child{display:grid;gap:2px}.photo-home b{font:inherit;letter-spacing:.06em}.photo-home small{font:.47rem/1.1 var(--mono);color:var(--muted)}
.photo-home:hover,.photo-home:focus-visible{color:var(--accent);background:#fff;transform:translateX(-2px);outline:none}.photo-home:hover .photo-home-arrow,.photo-home:focus-visible .photo-home-arrow{background:var(--accent)}
.photo-heading h1{max-width:none;font-size:clamp(3.1rem,15vw,7.8rem);line-height:.84;letter-spacing:-.07em;margin:0}
.photo-heading p{max-width:52ch;margin:22px 0 0;color:var(--muted);font:.68rem/1.55 var(--mono)}
.photo-count{margin:0;color:var(--muted);font:.55rem/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase}
.photo-filters{margin-top:26px;display:flex;gap:6px;flex-wrap:wrap;font:.56rem var(--mono)}
.photo-filters a{display:inline-flex;align-items:baseline;gap:6px;color:var(--muted);text-decoration:none;padding:6px 8px;background:rgba(23,24,20,.04)}
.photo-filters a:hover{color:var(--ink);background:rgba(23,24,20,.07)}
.photo-filters a.active{color:var(--accent);background:rgba(214,92,47,.07)}
.photo-filters small{font-size:.47rem;opacity:.62}
.gallery{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start}
.gallery-item{margin:0;position:relative;min-width:0;background:rgba(250,249,245,.92);padding:5px;box-shadow:0 1px 0 rgba(23,24,20,.06),0 6px 18px rgba(23,24,20,.03)}
.gallery-button{width:100%;aspect-ratio:4/3;display:block;border:0;padding:0;background:#d7d6cf;cursor:zoom-in;overflow:hidden;position:relative}
.gallery-button img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.88) contrast(1.015);transition:transform .24s,filter .2s}
.gallery-button:hover img,.gallery-button:focus-visible img{transform:scale(1.025);filter:saturate(.98) contrast(1.025)}
.gallery-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gallery-item figcaption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;min-height:39px;padding:6px 1px 0;color:var(--ink);font:.44rem/1.3 var(--mono)}
.gallery-item figcaption small{font:inherit;color:var(--muted);text-align:right;max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gallery-card-copy{min-width:0;display:grid;gap:2px}.gallery-card-copy strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-card-copy span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.favorite-mark{position:absolute;right:7px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(242,240,233,.48)}
.photo-empty{grid-column:1/-1;padding:60px 0;color:var(--muted);font:.7rem/1.6 var(--mono)}
.gallery-item.is-missing{display:none}
.photo-footer{display:flex;justify-content:space-between;align-items:center;padding:40px 0 5px;color:var(--muted);font:.56rem var(--mono)}.photo-footer a{text-decoration:none}.photo-footer a:hover{color:var(--accent)}.photo-footer-home{min-height:44px;display:inline-flex;align-items:center;padding:0 12px;background:rgba(23,24,20,.045);color:var(--ink)!important}.photo-footer-home:hover{background:rgba(214,92,47,.08);color:var(--accent)!important}
body.photo-focus-open{overflow:hidden}.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:3000;background:#11120f;color:#f2f0e9;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:9px}
.lightbox-top,.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;font:.54rem/1.3 var(--mono);letter-spacing:.025em;min-width:0}.focus-index{display:flex;gap:10px;color:#aaa99f;text-transform:uppercase}.focus-tools{display:flex;align-items:center;gap:0}.lightbox button{border:0;background:transparent;color:inherit;font:inherit;padding:8px 6px;cursor:pointer}.lightbox button:hover{color:var(--accent)}.lightbox button:disabled{cursor:default;color:#686860}.focus-main{min-height:0;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:stretch}.focus-nav{font-size:.9rem!important;align-self:stretch;opacity:.62}.focus-nav:hover{opacity:1}.lightbox-stage{min-width:0;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:4px;cursor:zoom-in;overscroll-behavior:contain}.lightbox-stage img{max-width:100%;max-height:100%;width:auto;height:auto;display:block;object-fit:contain}.lightbox-stage.is-actual{display:block;overflow:auto;cursor:grab;padding:18px}.lightbox-stage.is-actual:active{cursor:grabbing}.lightbox-stage.is-actual img{max-width:none;max-height:none;margin:0 auto;object-fit:none}.lightbox-bottom{padding-top:9px;color:#bdbbb2;align-items:flex-end}.focus-metadata{margin:0;display:flex;flex-wrap:wrap;gap:7px 18px;min-width:0;max-width:min(100%,980px)}.focus-metadata div{display:grid;grid-template-columns:auto auto;gap:5px;align-items:baseline;min-width:0}.focus-metadata dt{margin:0;color:#77776f;text-transform:uppercase;font:.46rem/1 var(--mono);letter-spacing:.07em}.focus-metadata dd{margin:0;color:#d7d5cc;font:.54rem/1.25 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-metadata div:nth-child(n+4) dd{color:#f0b29b}.lightbox-bottom a{color:inherit;text-underline-offset:4px;white-space:nowrap}
@media(min-width:560px){.photo-shell{width:min(calc(100% - 32px),1240px);padding-top:42px}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.lightbox{padding:12px 16px}.focus-main{grid-template-columns:42px minmax(0,1fr) 42px}.focus-metadata{gap:7px 22px}}
@media(min-width:820px){.gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.photo-header{grid-template-columns:1fr auto;align-items:end}.photo-home{grid-column:1/-1}.photo-count{text-align:right}.photo-filters{margin-top:32px}}
@media(min-width:1040px){.gallery{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1220px){.gallery{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:520px){.focus-tools #lightbox-original{display:none}.focus-index #focus-status{display:none}.lightbox-bottom{align-items:flex-start}.focus-metadata{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;width:100%}.focus-metadata div{display:block}.focus-metadata dt{margin-bottom:2px}.focus-metadata dd{white-space:normal}.lightbox-bottom>a{display:none}}
@media(prefers-reduced-motion:reduce){.gallery-button img{transition:none}}
