.gallery-page{background:var(--black);min-height:calc(100vh - 72px);padding-top:72px}.gallery-page-header{text-align:center;padding:80px 24px 48px}.gallery-page-header h1{letter-spacing:.04em;color:var(--warm-white);margin-bottom:16px;font-family:Cormorant Garamond,serif;font-size:clamp(36px,6vw,64px);font-weight:300}.gallery-page-header p{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:11px}.gallery-status{text-align:center;color:var(--muted);letter-spacing:.04em;padding:48px;font-size:13px}.gallery-status.error{color:#e07070}.pf-grid{grid-template-columns:repeat(4,1fr);gap:2px;padding:0 2px 80px;display:grid}.pf-tile{aspect-ratio:1;cursor:pointer;background-color:#ffffff0a;border:none;padding:0;position:relative;overflow:hidden}.pf-tile:before{content:"";background-image:var(--ph,none);filter:blur(14px);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.12)}.pf-tile img{object-fit:cover;z-index:1;width:100%;height:100%;transition:transform .4s;display:block;position:relative}.pf-tile:hover img,.pf-tile:focus-visible img{transform:scale(1.04)}.pf-tile:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;z-index:1}.pf-skeleton{cursor:default;position:relative;overflow:hidden}.pf-skeleton:after{content:"";background:linear-gradient(90deg,#0000,#c8a96e0f,#0000);animation:1.4s ease-in-out infinite pfShimmer;position:absolute;inset:0}@keyframes pfShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (width<=720px){.pf-grid{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.pf-tile img{transition:none}.pf-skeleton:after{animation:none}}
