.gallery-wrap{width:100%}.gallery-filters{position:sticky;top:4.25rem;z-index:20;display:flex;flex-wrap:wrap;gap:.62rem .86rem;align-items:center;margin-bottom:1.9rem;padding:.78rem 0;background:#faf7f2d6;backdrop-filter:blur(12px)}.filter-group{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.filter-separator{width:1px;height:1.65rem;background:var(--sand)}.chip{border:1px solid var(--sand);border-radius:999px;background:#ffffffbd;color:var(--stone);padding:.38rem .78rem;cursor:pointer;font-size:.78rem;letter-spacing:.08em}.chip.is-active{border-color:var(--sage);color:var(--ink);background:#c5d1b861}.swatch{width:1.5rem;height:1.5rem;border:1px solid rgba(107,99,88,.24);border-radius:999px;cursor:pointer;box-shadow:inset 0 0 0 3px var(--cream)}.swatch.is-active{outline:2px solid var(--sage);outline-offset:2px}.filter-clear{display:grid;place-items:center;width:1.9rem;height:1.9rem;border:1px solid var(--sand);border-radius:999px;background:#ffffffbd;color:var(--bark);cursor:pointer;transition:border-color .18s var(--ease-out),color .18s var(--ease-out),transform .18s var(--ease-out)}.filter-clear:hover,.filter-clear:focus-visible{border-color:var(--sage);color:var(--ink);transform:translateY(-1px)}.filter-clear svg{width:1rem;height:1rem}.swatch[data-color=white]{background:#fffaf1}.swatch[data-color=green]{background:#8b9a72}.swatch[data-color=pink]{background:#d9a7b4}.swatch[data-color=red]{background:#a94f49}.swatch[data-color=orange]{background:#c9844e}.swatch[data-color=yellow]{background:#d6bb65}.swatch[data-color=purple]{background:#9d7ba7}.swatch[data-color=blue]{background:#829aa8}.swatch[data-color=brown]{background:#8b7355}.swatch[data-color=black]{background:#302d29}.gallery-grid{columns:4 220px;column-gap:1rem}.gallery-empty{min-height:28vh;display:grid;align-items:center;color:var(--stone);font-family:var(--font-display);font-size:clamp(1.25rem,3vw,2rem);font-weight:300}.work-tile{display:block;width:100%;margin:0 0 1rem;padding:0;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;break-inside:avoid}.work-tile img{width:100%;height:auto;border-radius:2px;box-shadow:0 8px 24px #3a36321a;transition:transform .46s var(--ease-out),box-shadow .46s var(--ease-out)}.work-tile:hover img{transform:scale(1.018);box-shadow:0 14px 34px #3a363229}.work-tile:active img{transform:scale(.992);transition:transform var(--t-press) var(--ease-press)}.work-tile:focus-visible{outline:var(--focus-ring);outline-offset:3px;border-radius:3px}.lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#1d1b19b8;padding:clamp(3.25rem,7vw,5rem) clamp(1rem,8vw,5.5rem);animation:lightbox-fade .28s var(--ease-out)}.lightbox__image{width:auto;height:auto;max-width:min(100%,82rem);max-height:min(78svh,100%);object-fit:contain;background:var(--cream);box-shadow:0 18px 52px #1d1b1952;animation:lightbox-settle var(--t-hover) var(--ease-snappy)}@keyframes lightbox-fade{0%{opacity:0}}@keyframes lightbox-settle{0%{opacity:0;transform:scale(.985)}}.lightbox__close,.lightbox__nav{position:absolute;display:grid;place-items:center;width:2.75rem;height:2.75rem;border:0;border-radius:999px;color:var(--cream);background:#1d1b1914;cursor:pointer;opacity:.82;transition:background .18s var(--ease-out),opacity .18s var(--ease-out),transform .18s var(--ease-out)}.lightbox__close:hover,.lightbox__close:focus-visible,.lightbox__nav:hover,.lightbox__nav:focus-visible{background:#faf7f21f;opacity:1}.lightbox__close:focus-visible,.lightbox__nav:focus-visible{outline:1px solid rgba(250,247,242,.72);outline-offset:2px}.lightbox__close svg,.lightbox__nav svg{width:1.45rem;height:1.45rem}.lightbox__close{top:1.2rem;right:1.5rem}.lightbox__nav{top:50%;transform:translateY(-50%);width:3rem;height:3rem}.lightbox__nav:hover,.lightbox__nav:focus-visible{transform:translateY(-50%) scale(1.02)}.lightbox__nav svg{width:1.8rem;height:1.8rem}.lightbox__nav--prev{left:1.5rem}.lightbox__nav--next{right:1.5rem}@media(max-width:760px){.gallery-filters{position:relative;top:auto;gap:.55rem .5rem;margin-bottom:1.35rem}.filter-group{display:contents}.filter-separator{display:none}.gallery-grid{columns:2 150px;column-gap:.7rem}.work-tile{margin-bottom:.7rem}.lightbox{padding:3.5rem 1rem 2.5rem}.lightbox__image{max-height:min(82svh,100%)}.lightbox__close{top:.8rem;right:.75rem}.lightbox__nav--prev{left:.35rem}.lightbox__nav--next{right:.35rem}}
