.gal{gap:var(--space-4);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}@media (width>=640px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=960px){.gal{grid-template-columns:repeat(3,minmax(0,1fr))}}.gal-tile[hidden]{display:none}.gal-tile:target figure{outline:3px solid var(--primary-text);outline-offset:4px}.gal-tile figure{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--muted);flex-direction:column;height:100%;margin:0;display:flex;overflow:hidden}.gal-stage{aspect-ratio:4/3;background:var(--muted);display:block;position:relative;overflow:hidden}.gal-stage img{object-fit:cover;width:100%;height:100%;display:block}a.gal-open{cursor:zoom-in}.gal.teaser a.gal-open{cursor:pointer}a.gal-open:focus-visible{outline-offset:-3px}.gal-ba{display:flex}.gal-ba img{width:50%}.gal-tag{bottom:var(--space-2);color:#fff;letter-spacing:.04em;text-transform:uppercase;pointer-events:none;background:#000000b8;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:800;position:absolute}.gal-tag-before{left:var(--space-2)}.gal-tag-after{right:var(--space-2)}.gal-tile figcaption{align-items:flex-start;gap:var(--space-1);padding:var(--space-3) var(--space-4) var(--space-4);flex-direction:column;display:flex}.gal-title{font-size:var(--text-base);line-height:1.3}.gal-caption{font-size:var(--text-sm);line-height:1.45}.gal-meta{color:var(--muted-fg);font-size:var(--text-sm)}.gal-open-link{align-items:center;min-height:44px;font-weight:700;display:inline-flex}html.js .gal-ba{touch-action:pan-y;display:block}html.js .gal-ba img{width:100%;height:100%;position:absolute;inset:0}html.js .gal-ba .gal-before{z-index:1;clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}html.js .gal-ba .gal-tag{z-index:2}.gal-handle{z-index:2;top:0;bottom:0;left:var(--pos,50%);pointer-events:none;background:#fff;width:3px;margin-left:-1.5px;position:absolute;box-shadow:0 0 0 1px #00000059}.gal-handle:after{content:"";background:#0009 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7l-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") 50%/22px no-repeat;border:3px solid #fff;border-radius:50%;width:36px;height:36px;margin:-18px 0 0 -18px;position:absolute;top:50%;left:50%}.gal-range{z-index:3;opacity:0;cursor:ew-resize;touch-action:pan-y;appearance:none;width:100%;height:100%;margin:0;position:absolute;inset:0}.gal-range::-webkit-slider-runnable-track{height:100%}.gal-range::-webkit-slider-thumb{-webkit-appearance:none;width:44px;height:44px}.gal-range::-moz-range-thumb{border:0;width:44px;height:44px}.gal-ba:has(.gal-range:focus-visible){outline:3px solid var(--primary-text);outline-offset:-3px}.gal-ba:has(.gal-range:focus-visible) .gal-handle:after{border-color:var(--primary-text);box-shadow:0 0 0 3px #fff}html.lb-open{overflow:hidden}.gal-lb{width:min(96vw,1100px);max-width:none;max-height:96vh;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--card-radius);background:var(--bg);color:var(--fg);overflow:auto}.gal-lb::backdrop{background:#000000d1}.lb-bar,.lb-nav{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.lb-count{color:var(--muted-fg);font-size:var(--text-sm);margin:0;font-weight:700}.gal-lb button{min-width:44px;min-height:44px;padding:0 var(--space-4);border:2px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);font:inherit;cursor:pointer;font-weight:700}.gal-lb button:hover:not(:disabled){border-color:var(--primary-text);color:var(--primary-text)}.gal-lb button:disabled{opacity:.45;cursor:default}.lb-stage{margin:var(--space-3) 0;border-radius:var(--card-radius);background:var(--muted);justify-content:center;display:flex;overflow:hidden}.lb-stage>img{object-fit:contain;max-width:100%;max-height:68vh;display:block}.lb-stage .gal-stage.is-viewer{aspect-ratio:4/3;width:100%;max-height:68vh}.lb-stage .gal-stage.is-viewer img{object-fit:contain}.lb-text{gap:var(--space-1);margin:0 0 var(--space-3);flex-direction:column;display:flex}.lb-text:has(:empty:only-child){display:none}
