.gallery-page{background:#101112;color:#f0f1eb}
.gallery-main{max-width:1600px;margin:auto;padding:145px 5% 70px}
.gallery-breadcrumb{display:flex;flex-wrap:wrap;gap:12px;color:#a2a799;font-size:12px;margin-bottom:30px}
.gallery-breadcrumb a:hover{color:var(--lime)}
.gallery-title-row{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:36px}
.gallery-title-row h1{font-size:clamp(46px,7vw,100px);font-weight:700;letter-spacing:-.055em;line-height:1.05}
.gallery-title-row p{font-family:'Noto Sans Thai',sans-serif;margin-top:14px;font-size:15px;color:#a5ab9b}
.gallery-count{white-space:nowrap;font-size:11px;color:var(--lime);letter-spacing:1px}
.gallery-page:is([data-category="led-letter"],[data-category="lightbox"]) .gallery-title-row h1{color:color-mix(in srgb,#55535b,#fff0fa calc(var(--heading-light,1)*100%));text-shadow:0 0 calc(var(--heading-light,1)*18px) rgb(255 75 190 / calc(var(--heading-light,1)*.65))}
.gallery-page:is([data-category="led-letter"],[data-category="lightbox"]) .gallery-title-row p{color:color-mix(in srgb,#77747c,#ffe8f8 calc(var(--heading-light,1)*100%));text-shadow:0 0 14px rgb(255 75 190 / calc(var(--heading-light,1)*.5))}
.gallery-categories{display:flex;gap:10px;overflow-x:auto;padding:0 0 25px;margin-bottom:25px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.gallery-categories a{flex-shrink:0;border:1px solid #414638;border-radius:50px;padding:10px 19px;font-size:12px}
.gallery-categories a[aria-current=page],.gallery-categories a:hover{color:#101112;background:var(--lime);border-color:var(--lime)}
.gallery-grid{columns:2;column-gap:24px}
.gallery-shot{margin:0 0 24px;break-inside:avoid}
.gallery-shot a{display:block;position:relative;overflow:hidden;background:#191c18;cursor:zoom-in}
.gallery-shot img{display:block;width:100%;height:auto;object-fit:contain;transition:filter .3s;filter:brightness(.94)}
.gallery-shot a:hover img{filter:brightness(1.04)}
.gallery-shot a::after{content:'↗';position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff70;border-radius:50%;background:#101112a8;color:#fff}
.gallery-shot a:focus-visible,.gallery-categories a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.gallery-return{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:30px;margin-top:38px;font-size:14px}
.gallery-return a:last-child{color:var(--lime)}
.photo-dialog{position:fixed;inset:0;margin:auto;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;padding:0;background:#0b0c0ef5;color:#fff}
.photo-dialog::backdrop{background:#0b0c0eeb}
.photo-dialog[open]{display:grid;grid-template-rows:auto 1fr auto}
.photo-dialog-top,.photo-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4%}
.photo-dialog-top p{font-size:12px;color:#bfc4b5}
.photo-dialog button{display:grid;place-items:center;min-width:48px;min-height:48px;border:1px solid #69715c;background:#171b15;color:#fff;border-radius:50%;cursor:pointer;font-size:22px}
.photo-dialog button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.photo-dialog-image{width:100%;height:100%;min-height:0;object-fit:contain;padding:0 4%}
.photo-dialog-bottom p{font-family:'Noto Sans Thai',sans-serif;text-align:center;font-size:12px;line-height:1.6;color:#c1c6b7;max-width:70%}
body:has(.photo-dialog[open]){overflow:hidden}
@media(max-width:700px){.gallery-main{padding:112px 5% 45px}.gallery-title-row{display:block;margin-bottom:24px}.gallery-title-row h1{font-size:clamp(41px,11vw,64px)}.gallery-title-row p{font-size:13px;line-height:1.8}.gallery-count{display:block;margin-top:18px}.gallery-categories{gap:8px;padding-bottom:20px;margin-bottom:20px}.gallery-categories a{padding:10px 15px}.gallery-grid{columns:1}.gallery-shot{margin-bottom:18px}.gallery-return{font-size:12px}.photo-dialog-image{padding:0}.photo-dialog-top,.photo-dialog-bottom{padding:12px 4%}}
@media(prefers-reduced-motion:reduce){.gallery-shot img{transition:none}}

/* Progressive gallery: preserve rows when additional photos are revealed. */
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start;columns:auto}
.gallery-shot{margin:0}.gallery-shot[hidden],.gallery-more button[hidden]{display:none}
.gallery-more{text-align:center;padding:32px 0 48px}.gallery-more p{color:#aaa;font-size:14px;margin:0 0 16px}.gallery-more button{font:inherit;color:#fff;background:transparent;border:1px solid #777;border-radius:40px;padding:16px 28px;cursor:pointer}.gallery-more button:hover,.gallery-more button:focus-visible{border-color:#fff;box-shadow:0 0 18px #ffffff30}
@media(max-width:700px){.gallery-grid{grid-template-columns:1fr;gap:18px}}

