.birkan-album {
    --ba-active-cols: var(--ba-cols, 3);
    display: grid;
    grid-template-columns: repeat(var(--ba-active-cols), minmax(0, 1fr));
    gap: var(--ba-gap, 12px);
    align-items: start;
    min-width: 0;
}

@media (max-width: 1024px) {
    .birkan-album { --ba-active-cols: var(--ba-tablet, 3); }
}

@media (max-width: 600px) {
    .birkan-album { --ba-active-cols: var(--ba-mobile, 2); }
}

.birkan-album.ba-masonry-ready {
    position: relative;
    display: block;
}

.birkan-album.ba-masonry-ready > .birkan-album__item {
    position: absolute;
    top: 0;
    inset-inline-start: 0;
}

.birkan-album .birkan-album__item { min-width: 0; }
.birkan-album .birkan-album__card { margin: 0; min-width: 0; }
.birkan-album .birkan-album__media { position: relative; }

.birkan-album .birkan-album__frame {
    position: relative;
    display: block;
    margin: 0;
    overflow: hidden;
    box-sizing: border-box;
    border: var(--ba-border, 0) solid var(--ba-border-color, transparent);
    border-radius: var(--ba-radius, 8px);
    color: inherit;
    background: #e9edf0;
    text-decoration: none;
    transition: transform var(--ba-speed, 240ms) ease;
}

.birkan-album a.birkan-album__frame:focus-visible {
    outline: 3px solid #2583ed;
    outline-offset: 2px;
}

.birkan-album.ba-shadow-soft .birkan-album__frame { box-shadow: 0 4px 12px #0002; }
.birkan-album.ba-shadow-strong .birkan-album__frame { box-shadow: 0 9px 20px #0004; }
.birkan-album.ba-layout-grid .birkan-album__frame { aspect-ratio: var(--ba-ratio, 4 / 3); }
.birkan-album.ba-layout-instagram .birkan-album__frame { aspect-ratio: 1; }

.birkan-album .birkan-album__frame img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    transition: transform var(--ba-speed, 240ms) ease, filter var(--ba-speed, 240ms) ease;
}

.birkan-album.ba-layout-grid .birkan-album__frame img,
.birkan-album.ba-layout-instagram .birkan-album__frame img {
    position: absolute;
    inset: 0;
    height: 100%;
    object-fit: var(--ba-fit, cover);
}

.birkan-album.ba-layout-single { display: block; }
.birkan-album.ba-layout-single .birkan-album__frame { aspect-ratio: auto; }
.birkan-album.ba-layout-single .birkan-album__frame img { position: static; width: 100%; height: auto; }

.birkan-album.ba-tiles-ready {
    grid-auto-rows: var(--ba-row-height);
    grid-auto-flow: row dense;
    gap: var(--ba-tile-gap, var(--ba-gap, 12px));
    align-items: stretch;
}

.birkan-album.ba-tiles-ready .birkan-album__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.birkan-album.ba-tiles-ready .birkan-album__media {
    flex: 1 1 0;
    min-height: 0;
}

.birkan-album.ba-tiles-ready .birkan-album__frame { height: 100%; aspect-ratio: auto; }
.birkan-album.ba-tiles-ready .birkan-album__frame img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: var(--ba-fit, cover);
}

.birkan-album.ba-tiles-ready .birkan-album__below {
    flex: 0 1 auto;
    box-sizing: border-box;
    max-height: 35%;
    overflow: auto;
}

.birkan-album .birkan-album__download {
    position: absolute;
    z-index: 1;
    inset-block-start: 8px;
    inset-inline-end: 8px;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    border: 1px solid #ffffff66;
    border-radius: 50%;
    background: #121720e8;
    color: #fff;
    cursor: pointer;
}

.birkan-album .birkan-album__download:hover { background: #354252; }
.birkan-album .birkan-album__download:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }

.birkan-album .birkan-album__caption {
    display: block;
    margin: 0;
    padding: .6em .75em;
    font-size: .9em;
    line-height: 1.4;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.birkan-album .birkan-album__caption > * { display: block; }
.birkan-album .birkan-album__below { padding-inline: 0; }

.birkan-album .birkan-album__overlay {
    position: absolute;
    inset: auto 0 0;
    max-height: 100%;
    overflow: hidden;
    color: var(--ba-text, #fff);
    background: rgba(0, 0, 0, var(--ba-overlay, .7));
    transition: opacity var(--ba-speed, 240ms) ease, transform var(--ba-speed, 240ms) ease;
}

.birkan-album.ba-effect-gray .birkan-album__frame img { filter: grayscale(1); }
.birkan-album.ba-effect-zoom .birkan-album__frame:focus-within img,
.birkan-album.ba-effect-zoomblur .birkan-album__frame:focus-within img { transform: scale(1.07); }
.birkan-album.ba-effect-blur .birkan-album__frame:focus-within img,
.birkan-album.ba-effect-zoomblur .birkan-album__frame:focus-within img { filter: blur(3px); }
.birkan-album.ba-effect-dark .birkan-album__frame:focus-within img { filter: brightness(.67); }
.birkan-album.ba-effect-gray .birkan-album__frame:focus-within img { filter: none; }
.birkan-album.ba-effect-lift .birkan-album__frame:focus-within { transform: translateY(-4px); }

@media (hover: hover) {
    .birkan-album.ba-text-hover .birkan-album__overlay { opacity: 0; transform: translateY(8px); }
    .birkan-album.ba-text-hover .birkan-album__item:hover .birkan-album__overlay,
    .birkan-album.ba-text-hover .birkan-album__item:focus-within .birkan-album__overlay { opacity: 1; transform: none; }
    .birkan-album.ba-effect-zoom .birkan-album__frame:hover img,
    .birkan-album.ba-effect-zoomblur .birkan-album__frame:hover img { transform: scale(1.07); }
    .birkan-album.ba-effect-blur .birkan-album__frame:hover img,
    .birkan-album.ba-effect-zoomblur .birkan-album__frame:hover img { filter: blur(3px); }
    .birkan-album.ba-effect-dark .birkan-album__frame:hover img { filter: brightness(.67); }
    .birkan-album.ba-effect-gray .birkan-album__frame:hover img { filter: none; }
    .birkan-album.ba-effect-lift .birkan-album__frame:hover { transform: translateY(-4px); }
}

html.ba-lightbox-open, html.ba-lightbox-open body { overflow: hidden; }

.birkan-album-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto auto;
    gap: 8px;
    box-sizing: border-box;
    padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    color: #fff;
    background: #000;
    font: 16px/1.45 system-ui, sans-serif;
    overscroll-behavior: contain;
}

.birkan-album-lightbox[hidden], .birkan-album-lightbox [hidden] { display: none !important; }
.birkan-album-lightbox.ba-bg-dim { background: #090b11dc; }
.birkan-album-lightbox.ba-bg-blur { background: #090b11bf; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.birkan-album-lightbox .ba-light-top { display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
.birkan-album-lightbox .ba-light-actions { display: flex; align-items: center; gap: 8px; margin-inline-start: auto; }
.birkan-album-lightbox .ba-light-count { padding: 0 8px; font-variant-numeric: tabular-nums; }
.birkan-album-lightbox .ba-light-stage { position: relative; display: grid; grid-template: minmax(0, 1fr) / minmax(0, 1fr); min-height: 0; place-items: center; }
.birkan-album-lightbox .ba-light-photo { width: auto; height: auto; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; }
.birkan-album-lightbox .ba-light-status { position: absolute; inset: 50% 50% auto auto; transform: translate(50%, -50%); text-align: center; pointer-events: none; }

.birkan-album-lightbox button {
    appearance: none;
    box-sizing: border-box;
    display: inline-grid;
    place-items: center;
    min-width: 44px;
    min-height: 44px;
    padding: 4px 9px;
    margin: 0;
    border: 1px solid #ffffff48;
    border-radius: 999px;
    color: #fff;
    background: #141923e8;
    font: inherit;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    cursor: pointer;
}

.birkan-album-lightbox .ba-light-control:hover { background: #343e50; }
.birkan-album-lightbox .ba-light-control:not(.ba-close-label) {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    line-height: 1;
}
.birkan-album-lightbox .ba-light-control::before,
.birkan-album-lightbox .ba-light-control::after { content: none; }
.birkan-album-lightbox .ba-light-icon {
    display: block;
    width: var(--ba-icon-size, 22px);
    height: var(--ba-icon-size, 22px);
    margin: 0;
    pointer-events: none;
}
.birkan-album-lightbox .ba-light-download { --ba-icon-size: 20px; }
.birkan-album-lightbox button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.birkan-album-lightbox button:disabled { opacity: .4; cursor: default; }
.birkan-album-lightbox.ba-buttons-square .ba-light-control { border-radius: 5px; }
.birkan-album-lightbox.ba-buttons-plain .ba-light-control { border: 0; background: #0009; }
.birkan-album-lightbox .ba-light-close { margin-inline-start: auto; }
.birkan-album-lightbox .ba-light-close.ba-close-quiet:not(:focus) { position: absolute; clip-path: inset(50%); pointer-events: none; }
.birkan-album-lightbox .ba-light-nav { position: absolute; top: 50%; transform: translateY(-50%); }
.birkan-album-lightbox .ba-light-prev { inset-inline-start: 3px; }
.birkan-album-lightbox .ba-light-next { inset-inline-end: 3px; }

.birkan-album-lightbox .ba-light-caption {
    justify-self: center;
    max-width: min(800px, 100%);
    max-height: 16vh;
    overflow: auto;
    padding: 0 12px;
    text-align: center;
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.birkan-album-lightbox .ba-light-caption > * { display: block; }

.birkan-album-lightbox .ba-light-thumbs {
    display: flex;
    justify-self: center;
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
    gap: 6px;
    padding: 4px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.birkan-album-lightbox .ba-light-thumb { flex: 0 0 58px; height: 46px; padding: 0; overflow: hidden; border-radius: 5px; }
.birkan-album-lightbox .ba-light-thumb[aria-current="true"] { border: 2px solid #fff; }
.birkan-album-lightbox .ba-light-thumb img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 1366px) and (pointer: coarse), (max-width: 680px) {
    .birkan-album .birkan-album__download { inset-block-start: 4px; inset-inline-end: 4px; }
    .birkan-album-lightbox.ba-has-nav .ba-light-stage {
        grid-template: minmax(0, 1fr) 44px / 1fr 1fr;
        row-gap: 4px;
    }
    .birkan-album-lightbox.ba-has-nav .ba-light-photo { grid-area: 1 / 1 / 2 / -1; }
    .birkan-album-lightbox.ba-has-nav .ba-light-nav { position: static; transform: none; grid-row: 2; }
    .birkan-album-lightbox.ba-has-nav .ba-light-prev { grid-column: 1; justify-self: end; margin-inline-end: 12px; }
    .birkan-album-lightbox.ba-has-nav .ba-light-next { grid-column: 2; justify-self: start; margin-inline-start: 12px; }
    .birkan-album-lightbox .ba-light-caption { max-height: 13vh; }
}

@media (max-height: 430px) {
    .birkan-album-lightbox { gap: 3px; }
    .birkan-album-lightbox .ba-light-thumbs { max-height: 50px; }
}

@media (prefers-reduced-motion: reduce) {
    .birkan-album .birkan-album__frame,
    .birkan-album .birkan-album__frame img,
    .birkan-album .birkan-album__overlay { transition: none; }
}
