.photos-page{--photos-row-height:150px;box-sizing:border-box;width:100%}.photos-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:end;gap:24px;padding:8px 0 24px;display:flex}.photos-eyebrow{color:var(--color-neutral-6);font-size:var(--text-caption-10);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;line-height:1}.photos-title{color:var(--color-neutral-10);font-size:var(--text-title-28);letter-spacing:0;margin:0;font-weight:500;line-height:1.29}.photos-summary{color:var(--color-neutral-7);font-size:var(--text-label-12);white-space:nowrap;margin:0}.photos-header-meta{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.photos-size-control{color:var(--color-neutral-7);font-size:var(--text-label-12);white-space:nowrap;align-items:center;gap:9px;display:flex}.photos-size-control input{width:120px;accent-color:var(--color-brand);cursor:pointer}.photos-size-control output{width:3ch;color:var(--color-neutral-7);font-variant-numeric:tabular-nums;text-align:right}.photo-section{border-bottom:1px solid var(--color-border);padding:30px 0 36px}.photos-section-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.photos-section-title{color:var(--color-neutral-10);font-size:var(--text-title-20);letter-spacing:0;margin:0;font-weight:500;line-height:1.4}.photos-section-count{color:var(--color-neutral-7);font-size:var(--text-label-12);flex-shrink:0}.photo-grid{flex-wrap:wrap;gap:6px;display:flex}.photo-trigger{flex:var(--photo-aspect) 1 calc(var(--photo-aspect) * var(--photos-row-height));min-width:0;aspect-ratio:var(--photo-aspect);background:var(--color-neutral-1);font:inherit;cursor:zoom-in;border:0;border-radius:0;margin:0;padding:0;transition:border-color .15s,box-shadow .15s;display:block;overflow:hidden}.photo-trigger:hover,.photo-trigger:focus-visible{box-shadow:var(--yohaku-shadow);outline:none}.frame{background:var(--color-neutral-1);width:100%;height:100%;display:block;overflow:hidden}.frame-photo{object-fit:contain;width:100%;height:100%;transition:transform .25s;display:block}.photo-trigger:hover .frame-photo,.photo-trigger:focus-visible .frame-photo{transform:scale(1.025)}.photo-lightbox{z-index:100;box-sizing:border-box;background:color-mix(in srgb, var(--color-paper) 97%, transparent);cursor:zoom-out;place-items:center;width:100%;height:100%;margin:0;padding:28px;display:grid;position:fixed;inset:0}.photo-lightbox[hidden]{display:none}.photo-lightbox .lightbox-close{border:1px solid var(--color-border);background:var(--color-neutral-2);width:36px;height:36px;color:var(--color-neutral-7);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:18px;right:18px}.photo-lightbox .lightbox-close:hover,.photo-lightbox .lightbox-close:focus-visible{border-color:var(--color-neutral-5);color:var(--color-neutral-10);outline:none}.photo-lightbox .lightbox-nav{border:1px solid var(--color-border);background:var(--color-neutral-2);width:40px;height:40px;color:var(--color-neutral-7);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.photo-lightbox .lightbox-nav:hover,.photo-lightbox .lightbox-nav:focus-visible{border-color:var(--color-neutral-5);color:var(--color-neutral-10);outline:none}.photo-lightbox .lightbox-nav--prev{left:18px}.photo-lightbox .lightbox-nav--next{right:18px}.photo-lightbox .lightbox-image{max-width:min(92vw,1200px);max-height:82vh;box-shadow:var(--yohaku-shadow);object-fit:contain;cursor:default;image-rendering:auto;margin:auto;transition:opacity .16s,filter .16s;position:relative}.photo-lightbox .lightbox-image.is-loading{opacity:.92;filter:saturate(.82)}.photo-lightbox .lightbox-description{width:min(90vw,760px);color:var(--color-neutral-8);font-size:var(--text-copy-13);text-align:center;line-height:1.6;position:absolute;bottom:24px}.photo-lightbox .lightbox-metadata{color:var(--color-neutral-7);font-size:var(--text-caption-10);margin-top:3px}@media (width<=640px){.photos-header{flex-direction:column;align-items:start;gap:12px}.photos-header-meta{align-items:flex-start}.photos-size-control input{width:min(42vw,160px)}}@media (width<=420px){.photo-lightbox{padding:18px}}
