.filter-wrapper{margin-bottom:4rem;display:flex;justify-content:center;top:2rem;position:relative;z-index:100}.dropdown{position:relative;width:280px}.dropdown-trigger{width:100%;background:#16161e;border:1px solid rgba(255,255,255,.1);padding:.85rem 1.5rem;border-radius:1rem;color:#fff;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.dropdown-trigger:hover{background:#1e1e28;border-color:#fff3}.trigger-label{color:var(--gray);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.active-category{font-weight:700;font-size:1rem;flex-grow:1;text-align:left;margin-left:.75rem}.chevron{transition:transform .4s cubic-bezier(.4,0,.2,1);color:var(--pink-hot)}.dropdown.open .chevron{transform:rotate(180deg)}.dropdown.open .dropdown-trigger{border-color:var(--pink-hot);border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown-menu{position:absolute;top:100%;left:0;width:100%;background:#16161e;border:1px solid var(--pink-hot);border-top:none;border-bottom-left-radius:1rem;border-bottom-right-radius:1rem;overflow:hidden;opacity:0;transform:translateY(-10px);pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.dropdown.open .dropdown-menu{opacity:1;transform:translateY(0);pointer-events:all}.dropdown-item{width:100%;padding:1rem 1.5rem;background:transparent;border:none;color:var(--gray);text-align:left;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between}.dropdown-item:hover{background:#ffffff0d;color:#fff;padding-left:1.75rem}.dropdown-item.active{color:#fff;background:#d162a41a;font-weight:700}.dropdown-item.active:after{content:"";width:6px;height:6px;background:var(--pink-hot);border-radius:50%}.grid-loader{display:none;justify-content:center;padding:4rem 0;width:100%}.grid-loader.active{display:flex}.loader-spinner{width:40px;height:40px;border:3px solid rgba(209,98,164,.1);border-radius:50%;border-top-color:var(--pink-hot, #d162a4);animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.photography-grid{display:flex;flex-wrap:nowrap;gap:1.5rem;width:100%;align-items:flex-start;transition:all .5s ease}.masonry-col{display:flex;flex-direction:column;gap:1.5rem;flex:1;min-width:0}.photo-card{break-inside:avoid;position:relative;border-radius:1rem;overflow:hidden;opacity:0;animation:fadeInUp .8s cubic-bezier(.25,.1,.25,1) forwards;animation-delay:calc(var(--order) * .1s);cursor:pointer;border:none;padding:0;background:none;width:100%;text-align:left}.photography-grid.is-loading .photo-card{animation:none!important;opacity:0!important}.photo-card:focus-visible{outline:3px solid var(--accent-primary);outline-offset:4px}.photo-wrapper{position:relative;width:100%;transition:all .4s cubic-bezier(.4,0,.2,1);background:#1a1b26}img{width:100%;height:auto;display:block;filter:saturate(.9);transition:all .6s ease}.photo-card:hover .photo-wrapper{transform:translateY(-4px)}.photo-card:hover img{filter:saturate(1.1) brightness(1.1)}.photo-modal{background:transparent;border:none;padding:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;overflow:hidden;outline:none;inset:0}.photo-modal[open]{display:grid;place-items:center}.photo-modal::backdrop{background:#0d0d12e6;backdrop-filter:blur(10px);animation:fadeIn .4s ease forwards}.modal-container{position:relative;display:flex;background:transparent;border:none;max-width:95vw;max-height:95vh;width:auto;height:auto}.close-btn{position:absolute;top:1rem;right:1rem;z-index:10;background:#00000080;color:#fff;border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;backdrop-filter:blur(4px)}.close-btn:hover{background:var(--pink-hot);transform:rotate(90deg)}.modal-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.modal-image-wrapper{width:100%;height:100%;max-width:100%;max-height:100%;background:transparent;display:flex;align-items:center;justify-content:center}.modal-image-wrapper img{max-height:90vh;max-width:90vw;width:auto;height:auto;object-fit:contain;border-radius:.5rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.photo-modal[open]{animation:modalAppear .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes modalAppear{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
