.gallery-hero{padding:160px 0 80px;text-align:center;position:relative}.gallery-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0,rgba(212,160,160,.06) 0,transparent 60%)}.gallery-section{padding:0 0 80px}.gallery-section-title{font-family:var(--font-display);font-size:1.6rem;color:var(--rose);text-align:center;margin-bottom:32px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;max-width:var(--container-width);margin:0 auto 60px;padding:0 24px}.gallery-item{aspect-ratio:1;border-radius:4px;overflow:hidden;cursor:pointer;transition:all .4s var(--ease-smooth);position:relative}.gallery-item:hover{transform:scale(1.03);box-shadow:0 8px 30px rgba(0,0,0,.4)}.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.5));opacity:0;transition:opacity .3s;pointer-events:none}.gallery-item:hover:after{opacity:1}.gallery-grid.featured .gallery-item:first-child{grid-column:span 2;grid-row:span 2}.gallery-placeholder-msg{max-width:500px;margin:40px auto;padding:40px 24px;text-align:center;font-family:var(--font-body);font-size:1.1rem;color:var(--text-muted);font-style:italic;border:1px dashed var(--charcoal);border-radius:4px}@media (max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid.featured .gallery-item:first-child{grid-column:span 2;grid-row:span 1}}@media (max-width:480px){.gallery-grid{grid-template-columns:1fr 1fr;gap:8px}}