.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:0;padding:0;list-style:none;display:grid}.photo-grid li{aspect-ratio:1;background:#dfe5d9;position:relative;overflow:hidden}.photo-grid a{color:#fff;text-decoration:none;display:block;position:absolute;inset:0}.photo-grid img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}@media (hover:hover){.photo-grid a:hover img{transform:scale(1.03)}}.photo-grid a:focus-visible{outline-offset:-3px;outline:3px solid #9aae9c}.photo-grid-badge{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141a16a6;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:absolute;top:7px;right:7px}.photo-grid-counts{opacity:0;background:#141a1666;justify-content:center;align-items:center;gap:18px;font-size:14px;font-weight:700;transition:opacity .18s;display:flex;position:absolute;inset:0}.photo-grid-counts>span{align-items:center;gap:6px;display:inline-flex}.photo-grid a:focus-visible .photo-grid-counts{opacity:1}@media (hover:hover){.photo-grid a:hover .photo-grid-counts{opacity:1}}@media (hover:none){.photo-grid-counts{display:none}}@media (prefers-reduced-motion:reduce){.photo-grid img{transition:none}}.photo-grid li.is-hidden img{opacity:.5;filter:saturate(.6)}.photo-grid-upload img{object-fit:cover;opacity:.72;width:100%;height:100%;display:block}.photo-grid-progress{background:conic-gradient(#fff var(--progress),#ffffff40 0);filter:drop-shadow(0 1px 3px #0005);border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#0000 12px,#000 13px);mask:radial-gradient(circle,#0000 12px,#000 13px)}.photo-grid-upload button{color:#fff;background:#2a1a14a6;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex;position:absolute;inset:0}.photo-grid.is-placeholder li{background:linear-gradient(100deg,#e3e8de 30%,#eef1ea 50%,#e3e8de 70%) 0 0/300% 100%;animation:1.4s ease-in-out infinite photo-grid-wait}@keyframes photo-grid-wait{0%{background-position:100% 0}to{background-position:0 0}}
