/* A direct, evenly sized photo wall; CMS collections do not dictate blog layouts. */
.gallery-index{padding-bottom:65px}.gallery-mast{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;padding-block:44px 34px}
.gallery-mast h1{font-family:"Noto Serif TC","PMingLiU",serif;font-weight:500;font-size:44px;line-height:1.3;margin:14px 0 0}.gallery-mast>p{color:#c0cdd5;line-height:1.9;font-size:1rem;margin:0}.gallery-mast>p span{display:block;color:#8fa5b4;font-size:.8125rem}
.gallery-index .news-preview-note{margin-bottom:18px;padding:9px 0;font-size:.75rem}.gallery-summary{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px;color:#a6b6c1;font-size:.75rem;letter-spacing:.06em}.gallery-summary>span:last-child{color:#b8a27a}
.album-heading{max-width:1280px;padding-block:30px}.album-heading>.text-link{margin-bottom:16px}.album-heading h1{font-size:36px;margin-block:18px}.album-description{white-space:pre-line;overflow-wrap:anywhere}.album-hint{font-size:.8125rem;color:#99aebc;margin-top:18px}
.album-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:32px 22px;padding-bottom:40px}
.album-photo{min-width:0;margin:0}.gallery-photo-link{display:block;position:relative;overflow:hidden;aspect-ratio:1.5;background:#0c1620}
.gallery-photo-link img{height:100%;width:100%;object-fit:cover;transition:transform .45s,filter .45s;filter:brightness(.94)}
.photo-zoom{position:absolute;right:18px;bottom:16px;padding:7px 13px;background:#070c12bd;backdrop-filter:blur(6px);border:1px solid #cbb78477;border-radius:3px;font-size:.8125rem;color:#f0e6d2}
.gallery-photo-link:hover img,.gallery-photo-link:focus-visible img{transform:scale(1.018);filter:brightness(1.05)}
.album-photo figcaption{margin-top:12px;line-height:1.7;color:#d0d9df;font-size:.9375rem;overflow-wrap:anywhere}.photo-title{display:block}
.gallery-lightbox{position:fixed;inset:0;margin:auto;border:0;padding:18px 24px;background:#070c12f5;color:#e8edf0;width:100%;max-width:100%;height:100%;height:100dvh;max-height:100dvh;overflow:hidden}
.gallery-lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px}.gallery-lightbox::backdrop{background:#020509f5}
.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px}.lightbox-count{color:var(--gold);letter-spacing:.14em;font-size:.875rem;font-variant-numeric:tabular-nums}
.gallery-lightbox button{border:1px solid #a8b7c566;border-radius:3px;background:#101d29;color:#f3edde;min-width:48px;min-height:46px;padding:8px 16px;font:inherit;cursor:pointer}
.gallery-lightbox button:hover{background:#263647;border-color:var(--gold)}.gallery-lightbox button:focus-visible{outline:2px solid #e3c990;outline-offset:3px}.gallery-lightbox button:disabled{opacity:.35;cursor:default}
.lightbox-stage{min-height:0;min-width:0;display:flex;align-items:center;justify-content:center}.lightbox-stage img{display:block;width:100%;height:100%;object-fit:contain}
.lightbox-bottom{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:20px;align-items:center;max-width:1100px;width:100%;margin:auto}
.lightbox-description{min-width:0;max-height:18vh;overflow:auto;text-align:center;overflow-wrap:anywhere}.lightbox-description p{font-size:.9375rem;line-height:1.8;margin:0;color:#d0d8df}.lightbox-description .lightbox-error{color:#e9bba0}
@media(max-width:1399px){.album-photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:999px){.album-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.album-photos{grid-template-columns:minmax(0,1fr);gap:28px}.gallery-photo-link{aspect-ratio:1.6}.gallery-mast{align-items:flex-start;flex-direction:column;gap:16px;padding-block:30px 24px}.gallery-mast h1{font-size:34px}.gallery-mast .kicker{font-size:.75rem}.gallery-index{padding-bottom:30px}.gallery-summary{font-size:.6875rem}.gallery-lightbox{padding:12px max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.lightbox-bottom{gap:12px}.lightbox-description p{font-size:.8125rem}.gallery-lightbox[open]{gap:12px}.photo-zoom{right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){.gallery-photo-link img{transition:none}}
