.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem;padding:2rem 0}@media (min-width: 768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem}}@media (min-width: 1024px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}.gallery-item{position:relative;cursor:pointer}.gallery-item.is-hidden{display:none}.gallery-card{background:var(--surface);border-radius:1rem;overflow:hidden;box-shadow:var(--shadow-sm);transition:all var(--transition-base) var(--transition-organic)}.gallery-card:hover{transform:translateY(-12px);box-shadow:var(--shadow-lg)}.gallery-card:hover .gallery-image{transform:scale(1.05);filter:brightness(1.05)}.gallery-image-wrapper{position:relative;overflow:hidden;background:var(--stone-gray)}.gallery-item:nth-child(3n+1) .gallery-image-wrapper{aspect-ratio:3/4}.gallery-item:nth-child(3n+2) .gallery-image-wrapper{aspect-ratio:4/5}.gallery-item:nth-child(3n+3) .gallery-image-wrapper{aspect-ratio:1/1}.gallery-image{width:100%;height:100%;object-fit:cover;transition:all var(--transition-slow) var(--transition-organic);opacity:0}.gallery-image.loaded{opacity:1}.gallery-card-content{padding:1.5rem}.card-title{font-family:var(--font-sans);font-size:1.25rem;font-weight:500;letter-spacing:.02em;margin-bottom:.5rem;color:var(--text-primary)}.card-meta{font-family:var(--font-accent);font-style:italic;font-size:.875rem;color:var(--text-tertiary);margin-bottom:.75rem}.card-description{font-size:.95rem;line-height:1.6;color:var(--text-secondary)}.filter-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.filter-bar label{font-family:var(--font-sans);font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary)}.filter-bar select{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.6rem 1.1rem;font-family:var(--font-sans);font-size:.95rem;color:var(--text-primary);box-shadow:var(--shadow-sm);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.filter-bar select:focus{border-color:var(--terracotta);box-shadow:0 0 0 3px #d4a37340}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ae6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:none;align-items:center;justify-content:center;z-index:9999;padding:2rem;opacity:0}.modal-content{position:relative;max-width:1400px;width:100%;height:85vh;background:transparent;border-radius:0;overflow:visible;display:grid;grid-template-columns:1fr;box-shadow:none}@media (min-width: 768px){.modal-content{grid-template-columns:1fr}}.modal-image-wrapper{position:relative;background:transparent;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0}.modal-image{width:100%;height:100%;object-fit:contain;padding:0}.modal-nav{position:absolute;top:50%;transform:translateY(-50%);background:#0000008c;border:none;border-radius:999px;width:2.5rem;height:2.5rem;display:grid;place-items:center;font-size:1.1rem;color:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:background var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast)}.modal-image-wrapper:hover .modal-nav{opacity:1;pointer-events:auto}.modal-nav:hover{background:#000000b3;transform:translateY(-50%) translate(1px)}.modal-prev{left:.75rem}.modal-next{right:.75rem}justify-content: center; cursor: pointer; transition: all var(--transition-base); box-shadow: var(--shadow-md); } .modal-nav-btn:hover{background:var(--surface);transform:scale(1.1)}.modal-nav-btn svg{width:1.5rem;height:1.5rem;stroke:var(--text-primary)}.modal-close{position:absolute;top:1.5rem;right:1.5rem;width:3rem;height:3rem;border-radius:50%;background:#f3ede4e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);z-index:20;box-shadow:var(--shadow-md)}.modal-close:hover{background:var(--surface);transform:rotate(90deg) scale(1.1)}.modal-close svg{width:1.5rem;height:1.5rem;stroke:var(--text-primary)}.gallery-filter{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:3rem}.filter-btn{font-family:var(--font-sans);font-size:.875rem;font-weight:400;letter-spacing:.05em;text-transform:uppercase;padding:.75rem 1.5rem;border-radius:2rem;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base)}.filter-btn:hover{border-color:var(--terracotta);color:var(--text-primary)}.filter-btn.active{background:var(--terracotta);border-color:var(--terracotta);color:var(--bone-white)}
