.photo-page{background:radial-gradient(ellipse at 50% 20%,#59473c38,transparent 65%),#100c09}
.photo-page .gallery-intro .text-link{margin-bottom:24px}
.photo-collection{width:min(1280px,calc(100% - 2*var(--gutter)));margin:40px auto 60px}
.photo-mosaic{position:relative;list-style:none;margin:0;padding:0;min-height:200px}
.photo-mosaic>li{position:absolute;top:0;left:0;min-width:0}
.photo-mosaic:not(.is-arranged)>li{visibility:hidden}
.photo-tile{display:block;width:100%;height:100%;position:relative;overflow:hidden;padding:0;border:0;border-radius:5px;background:#59473c33;color:var(--cream);box-shadow:0 8px 25px #0002;cursor:zoom-in}
.photo-tile img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .25s}
.photo-tile:hover img{filter:brightness(1.06)}
.photo-expand{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#231c179e;border:1px solid #e9d4b16b;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;pointer-events:none}
.photo-expand svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.photo-tile:hover .photo-expand,.photo-tile:focus-visible .photo-expand{opacity:1;transform:none}
.photo-view-open{overflow:hidden}
.photo-lightbox{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#100c09fa;color:var(--cream);overscroll-behavior:contain}
.photo-lightbox::backdrop{background:#000c;backdrop-filter:blur(12px)}
.photo-view-shell{height:100%;display:grid;grid-template-rows:76px minmax(0,1fr) 76px}
.photo-view-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 26px;gap:20px}
.photo-counter{font-size:12px;letter-spacing:.12em;color:#e9d4b1c9}
.photo-view-stage{min-height:0;display:grid;place-items:center;overflow:hidden;padding:0 34px;touch-action:pan-y pinch-zoom}
.photo-view-image{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 152px);min-width:0;min-height:0;object-fit:contain;box-shadow:0 10px 40px #0005}
.photo-view-footer{display:flex;align-items:center;justify-content:center;gap:20px;padding:12px 26px}
.photo-view-button{display:grid;place-items:center;width:46px;height:46px;flex:0 0 auto;padding:0;border:1px solid #caa08970;border-radius:50%;background:#59473c30;color:var(--cream);transition:background .2s,color .2s,border-color .2s}
.photo-view-button:hover{background:var(--cream);border-color:var(--cream);color:var(--espresso)}
.photo-view-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.photo-load-status{max-width:310px;font-size:11px;line-height:1.5;text-align:center}
.photo-load-status:empty{display:none}
@media(max-width:600px){.photo-collection{margin-top:30px;margin-bottom:42px}.photo-tile{border-radius:3px}.photo-expand{right:8px;bottom:8px;width:27px;height:27px;opacity:1;transform:none}.photo-expand svg{width:15px;height:15px}.photo-view-shell{grid-template-rows:64px minmax(0,1fr) 68px}.photo-view-toolbar{padding:8px 14px}.photo-view-stage{padding:0 10px}.photo-view-image{max-height:calc(100dvh - 132px)}.photo-view-footer{padding:10px 14px;gap:18px}.photo-view-button{width:44px;height:44px}.photo-load-status{font-size:10px;max-width:180px}}
