.photo-gallery{width:min(1280px,94vw);height:90dvh;max-width:94vw;max-height:90dvh;padding:0;border:1px solid #bed2bf;border-radius:12px;background:#f3f6ec;color:#365448;box-shadow:0 26px 100px #102f3666;overflow:hidden}
.photo-gallery::backdrop{background:#15383b99;backdrop-filter:blur(8px)}
.photo-gallery[open]{display:flex;flex-direction:column;animation:photo-arrive .25s ease-out}
.photo-gallery [hidden]{display:none!important}
.photo-gallery button{font:inherit;color:inherit;cursor:pointer}.photo-gallery button:focus-visible{outline:2px solid #6f9178;outline-offset:4px}
.photo-gallery-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 32px;border-bottom:1px solid #d2ddc9;flex-shrink:0}
.photo-gallery-title{display:flex;align-items:center;gap:18px;min-width:0}.photo-gallery h2{font:400 clamp(24px,3vw,34px)/1.5 var(--serif);margin:0}.photo-gallery-actions{display:flex;align-items:center;gap:24px}.photo-counter{font:500 11px var(--sans);color:#7e9481;white-space:nowrap}
.photo-gallery .photo-close,.photo-gallery .photo-back{border:0;background:transparent;font-size:27px;padding:5px 10px;line-height:1.2}.photo-gallery .photo-back{font-size:22px;padding-left:0}
.photo-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#b4c9b1 transparent;padding:30px 32px}
.photo-grid{columns:3;column-gap:26px}.photo-gallery .photo-tile{width:100%;display:block;break-inside:avoid;margin:0 0 24px;border:0;background:transparent;padding:0;text-align:left}
.photo-tile img{display:block;width:100%;height:auto;background:#e0e8d8;transition:transform .3s,filter .3s}.photo-tile:hover img{transform:translateY(-3px);filter:brightness(1.035)}.photo-tile>span{display:block;font:500 9px var(--sans);letter-spacing:2px;color:#829480;margin-top:9px}
.photo-status{font:500 13px/1.8 var(--sans);color:#81977d}
.photo-stage{position:relative;height:100%;min-height:240px;display:flex;align-items:center;justify-content:center;padding:0 40px}
.photo-stage-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;touch-action:pan-y}
.photo-gallery .photo-prev,.photo-gallery .photo-next{position:absolute;top:calc(50% - 24px);border:0;background:#f3f6ecdd;border-radius:50%;font-size:24px;width:40px;height:44px;padding:0;z-index:1}.photo-prev{left:-16px}.photo-next{right:-16px}.photo-gallery.is-viewing .photo-scroll{overflow:hidden}
body:has(.photo-gallery[open]){overflow:hidden}
@keyframes photo-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.photo-grid{columns:2;column-gap:18px}.photo-scroll{padding:22px}.photo-gallery-header{padding:20px 22px}.photo-gallery-actions{gap:12px}}
@media(max-width:500px){.photo-gallery{width:95vw;max-width:95vw;height:94dvh;max-height:94dvh;border-radius:9px}.photo-gallery-header{padding:17px 15px;gap:5px}.photo-gallery-title{gap:7px}.photo-gallery h2{font-size:24px}.photo-gallery-actions{gap:2px}.photo-counter{font-size:9px}.photo-gallery .photo-close{padding:5px;font-size:25px}.photo-scroll{padding:18px}.photo-grid{columns:1}.photo-stage{padding:0 0 52px}.photo-gallery .photo-prev,.photo-gallery .photo-next{top:auto;bottom:0}.photo-prev{left:25%}.photo-next{right:25%}}
@media(prefers-reduced-motion:reduce){.photo-gallery[open]{animation:none}.photo-tile img{transition:none}}
