.gallery-empty{border:1px solid var(--line);border-top:3px solid var(--purple);padding:48px;background:var(--panel);max-width:900px;margin-bottom:60px}.gallery-empty h2{margin:20px 0;font-size:38px}.gallery-empty p{max-width:630px;color:var(--muted);margin-bottom:24px}.gallery-contact{border-top:1px solid var(--line);padding:45px 0 65px}.gallery-contact h2{font-size:36px}.gallery-contact p{margin:16px 0 24px;color:var(--muted)}.gallery-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.gallery-filters button{background:transparent;color:var(--paper);border:1px solid var(--line);padding:10px 18px;cursor:pointer}.gallery-filters button[aria-pressed=true]{background:var(--paper);color:var(--ink)}#photo-count{color:var(--muted);font-size:13px;margin-bottom:24px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-bottom:65px}.photo-card{margin:0;border:1px solid var(--line);background:var(--panel);min-width:0}.photo-open{display:block;overflow:hidden}.photo-open img{width:100%;aspect-ratio:3/4;object-fit:contain;transition:transform .2s}.photo-open:hover img{transform:scale(1.025)}.photo-card figcaption{padding:24px}.photo-card h3{font-size:24px;margin:12px 0;overflow-wrap:anywhere}.photo-meta{font-size:12px;color:var(--muted)}.photo-caption{font-size:15px;margin-top:14px;color:var(--muted)}[hidden]{display:none!important}#photo-dialog{width:min(1000px,94vw);max-height:92vh;background:var(--panel);color:var(--paper);border:1px solid var(--line);padding:22px}#photo-dialog::backdrop{background:rgba(0,0,0,.85)}.photo-close{display:block;margin:0 0 18px auto;background:var(--paper);color:var(--ink);padding:10px 18px;border:0;cursor:pointer}#photo-large{max-height:65vh;max-width:100%;width:auto;margin:auto;object-fit:contain}#photo-title{font-size:26px;margin:22px 0 12px}#photo-detail{color:var(--muted)}@media(max-width:1000px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.photo-grid{grid-template-columns:1fr}.gallery-empty{padding:26px}.gallery-empty h2{font-size:30px}.gallery-contact h2{font-size:30px}}

.gallery-sections{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:42px}.gallery-sections a{font-size:14px;text-decoration:underline;text-underline-offset:5px}.gallery-section{border-top:1px solid var(--line);padding:36px 0}.gallery-section>h2{font-size:clamp(28px,4vw,40px);margin-bottom:28px}.section-empty{color:var(--muted);padding:24px 0 40px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.photo-grid{grid-template-columns:1fr}}
