::view-transition-group(--light-box),::view-transition-group(--light-box-backdrop){z-index:1}::view-transition-group(--light-box-img){z-index:2}::view-transition-old(--light-box-img){animation:.2s cubic-bezier(.4,0,1,1) forwards fade-out}::view-transition-new(--light-box-img){animation:.2s cubic-bezier(0,0,.2,1) forwards fade-in}@keyframes fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@supports not (view-transition-name:initial){:where(#lightbox),:where(#lightbox)::backdrop{transition:display .5s allow-discrete, overlay .5s allow-discrete, transform .5s, opacity .5s;opacity:0}:where(#lightbox)[open]{opacity:1;transform:scale(1)}:where(#lightbox)[open]::backdrop{opacity:1}@starting-style{:where(#lightbox)[open],:where(#lightbox)[open]::backdrop{opacity:0}}@media (prefers-reduced-motion:no-preference){:where(#lightbox){transform:scale(.95)}}}:where(#lightbox){view-transition-name:--light-box;contain:layout;border:0;padding:0}:where(#lightbox)::backdrop{view-transition-name:--light-box-backdrop;background-image:radial-gradient(#0003,25%,#000e)}:where(#lightbox)>img{block-size:auto;max-inline-size:100%;display:flex}.gallery-grid{--_gap:var(--gallery-gap,1.5rem);--_min-col-width:var(--gallery-min-col-width,280px);--_card-radius:var(--gallery-card-radius,12px);--_aspect-ratio:var(--gallery-aspect-ratio,4 / 3);--_transition-speed:var(--gallery-transition-speed,.25s);--_theme:var(--gallery-theme,light);grid-template-columns:repeat(auto-fill, minmax(var(--_min-col-width), 1fr));gap:var(--_gap);padding:var(--_gap);box-sizing:border-box;display:grid}.gallery-grid .gallery-card{border-radius:var(--_card-radius);transition:transform var(--_transition-speed) ease, box-shadow var(--_transition-speed) ease, background-color var(--_transition-speed) ease, border-color var(--_transition-speed) ease;border:1px solid #0000;flex-direction:column;display:flex;overflow:hidden}.gallery-grid .gallery-card:hover .image-wrapper img{transform:scale(1.03)}.gallery-grid .gallery-card:hover .card-overlay{opacity:1}.gallery-grid .image-wrapper{width:100%;aspect-ratio:var(--__aspect-ratio);transition:background-color var(--_transition-speed) ease;position:relative;overflow:hidden}.gallery-grid .image-wrapper img{object-fit:cover;width:100%;height:100%;transition:transform var(--_transition-speed) ease}.gallery-grid .card-overlay{opacity:0;backdrop-filter:blur(2px);transition:opacity var(--_transition-speed) ease, background-color var(--_transition-speed) ease;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;inset:0}.gallery-grid .card-overlay:focus-within{opacity:1}.gallery-grid .action-btn{cursor:pointer;width:2.5rem;height:2.5rem;transition:transform .15s ease, background-color var(--_transition-speed) ease, color var(--_transition-speed) ease;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.gallery-grid .action-btn svg{width:1.25rem;height:1.25rem}.gallery-grid .action-btn:hover,.gallery-grid .action-btn:focus-visible{outline-offset:2px;transform:scale(1.1)}.gallery-grid .action-btn.delete-btn:hover,.gallery-grid .action-btn.delete-btn:focus-visible{color:#fff;background-color:#ef4444;outline-color:#ef4444}.gallery-grid .card-footer{align-items:center;padding:1rem;display:flex}.gallery-grid .select-label{cursor:pointer;user-select:none;transition:color var(--_transition-speed) ease;align-items:center;gap:.5rem;width:100%;min-width:0;font-family:system-ui,sans-serif;font-size:.9rem;display:inline-flex}.gallery-grid .select-label .label-text{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.gallery-grid .select-checkbox{opacity:0;width:0;height:0;position:absolute}.gallery-grid .select-checkbox:checked+.checkbox-custom:after{display:block}.gallery-grid .checkbox-custom{border:2px solid #0000;border-radius:4px;flex-shrink:0;width:1.25rem;height:1.25rem;transition:background-color .15s,border-color .15s;display:inline-block;position:relative}.gallery-grid .checkbox-custom:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;display:none;position:absolute;top:2px;left:6px;transform:rotate(45deg)}@container style(--_theme:light){.gallery-grid .gallery-card{background-color:#fff;border-color:#e2e8f0;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.gallery-grid .gallery-card:has(.select-checkbox:checked){border-color:#2563eb;box-shadow:0 0 0 2px #2563eb}.gallery-grid .image-wrapper{background-color:#f1f5f9}.gallery-grid .card-overlay{background-color:#0f172a99}.gallery-grid .action-btn{color:#334155;background-color:#fff}.gallery-grid .action-btn:hover,.gallery-grid .action-btn:focus-visible{background-color:#f8fafc;outline:2px solid #fff}.gallery-grid .select-label{color:#475569}.gallery-grid .checkbox-custom{border-color:#cbd5e1}.gallery-grid .select-checkbox:checked+.checkbox-custom{background-color:#2563eb;border-color:#2563eb}.gallery-grid .select-checkbox:focus-visible+.checkbox-custom{outline-offset:2px;outline:2px solid #2563eb}}@container style(--_theme:dark){.gallery-grid .gallery-card{background-color:#1e293b;border-color:#334155;box-shadow:0 4px 6px -1px #00000080,0 2px 4px -1px #0000004d}.gallery-grid .gallery-card:has(.select-checkbox:checked){border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f6}.gallery-grid .image-wrapper{background-color:#0f172a}.gallery-grid .card-overlay{background-color:#0f172abf}.gallery-grid .action-btn{color:#f8fafc;background-color:#334155}.gallery-grid .action-btn:hover,.gallery-grid .action-btn:focus-visible{background-color:#475569;outline:2px solid #334155}.gallery-grid .select-label{color:#94a3b8}.gallery-grid .checkbox-custom{border-color:#475569}.gallery-grid .select-checkbox:checked+.checkbox-custom{background-color:#3b82f6;border-color:#3b82f6}.gallery-grid .select-checkbox:focus-visible+.checkbox-custom{outline-offset:2px;outline:2px solid #3b82f6}}@media (prefers-reduced-motion:reduce){.gallery-grid{--gallery-transition-speed:0s}.gallery-grid .gallery-card:hover .image-wrapper img,.gallery-grid .action-btn:hover,.gallery-grid .action-btn:focus-visible{transform:none}.gallery-grid .checkbox-custom,.gallery-grid .checkbox-custom:after{transition:none!important}}.gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;padding:1rem;display:grid}.gallery__item{background-color:#f8f9fa;border-radius:.5rem;flex-direction:column;margin:0;display:flex;overflow:hidden;box-shadow:0 .25rem .75rem #00000014}.gallery__picture{object-fit:cover;cursor:zoom-in;background-color:#e9ecef;width:100%;height:auto;display:block}.gallery__image{object-fit:cover;object-position:top center;width:100%;height:100%;aspect-ratio:var(--gallery-image-aspect-ratio,4/3);display:block}.gallery__caption{text-align:center;color:#212529;background-color:#80808033;border-top:1px solid #e9ecef;margin-top:auto;padding:.875rem 1rem;font-size:.9375rem;line-height:1.4}.lightbox{color:#fff;z-index:9999;background-color:#000000f2;border:none;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lightbox::backdrop{background-color:#000000f2}.lightbox__container{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.lightbox__content{opacity:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0;overflow:hidden;transform:translate(0)}.lightbox__content picture{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.lightbox__image{object-fit:contain;user-select:none;-webkit-user-drag:none;touch-action:none;transform-origin:50%;will-change:transform;cursor:zoom-in;width:auto;max-width:100%;height:auto;max-height:100%;display:block;aspect-ratio:auto!important}.lightbox__image--zoomed{cursor:grab}.lightbox__image--dragging{cursor:grabbing}.lightbox__close{z-index:10000;color:#fff;cursor:pointer;backdrop-filter:blur(4px);background:#00000080;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.5rem;display:flex;position:absolute;top:1rem;right:1rem}.lightbox__close,.lightbox__nav{z-index:10000;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none;background:#00000080;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;margin:0;padding:0;display:inline-flex;position:absolute}.lightbox__close svg,.lightbox__nav svg{pointer-events:none;display:block}.lightbox__close:hover,.lightbox__nav:hover{background:#000000b3;border-color:#fff6}.lightbox__close:focus-visible,.lightbox__nav:focus-visible{outline-offset:2px;outline:2px solid #fff}.lightbox__close{top:1rem;right:1rem}.lightbox__nav{width:3rem;height:3rem;top:50%;transform:translateY(-50%)}.lightbox__nav--prev{left:1rem}.lightbox__nav--next{right:1rem}.lightbox__nav:disabled{opacity:.2;cursor:not-allowed;pointer-events:none}.lightbox__caption{z-index:10000;color:#fff;pointer-events:none;background:#0009;border-radius:.5rem;padding:.5rem 1rem;font-size:.9rem;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:no-preference){::view-transition-old(active-lightbox-image),::view-transition-new(active-lightbox-image){object-fit:contain;width:100%;height:100%}::view-transition-group(active-lightbox-image){z-index:99999;animation-duration:.25s;animation-timing-function:cubic-bezier(.2,0,0,1)}.lightbox__close,.lightbox__nav{transition:background-color .15s,opacity .15s,transform .15s}.lightbox__content.lightbox-slide-out-left{animation:.15s ease-in forwards slideOutLeft}.lightbox__content.lightbox-slide-out-right{animation:.15s ease-in forwards slideOutRight}.lightbox__content.lightbox-slide-in-right{animation:.15s ease-out forwards slideInRight}.lightbox__content.lightbox-slide-in-left{animation:.15s ease-out forwards slideInLeft}@keyframes slideOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-30px)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(30px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}}body.body-scroll-lock{overflow:hidden}